1

これはコマンドであり、エラーが生成されます:

db.tweets.aggregate(
    {$project:{'entities.hashtags.text':1}},
    {$unwind:'$entities.hashtags'},
    {$group:{_id:'$entities.hashtags.text'}})

{
    "errmsg" : "exception: aggregation result exceeds maximum document size (16MB)",
    "code" : 16389,
    "ok" : 0
}

私は次のクエリを実行したいと思います:

entities.hashtags.text でグループ化し、存在するハッシュタグごとにそのハッシュタグを含むドキュメントの数をカウントします。

これはドキュメントの一部です:

...

エンティティ: {

   media: [

         ...

    ],

    urls: [],

    hashtags: [

        {

            text: "makeuploos",

            indices: [

                54,

                65

            ]

        },

        {

            text: "onbewerkt",

            indices: [

                66,

                76

            ]

        },

        {

            text: "hoer",

            indices: [

                77,

                82

            ]

        }

    ],

...

これどうやってするの??

4

2 に答える 2

0

巻き戻し後にどこかに追加し、$where関連するデータのみを照合してみてください。多くの異なるハッシュタグが必要であり、それらは 16MB の制限に収まりません。

于 2012-12-29T12:21:12.497 に答える
0

MongoDB v.2.6 から、オプションallowDiskUseを使用できます。例えば:

  db.tweets.aggregate(
    [
      {$project:{'entities.hashtags.text':1}},
      {$unwind:'$entities.hashtags'},
      {$group:{_id:'$entities.hashtags.text'}}
    ],
    {
      allowDiskUse: true
    }
  )

これにより、一時ファイルへのデータの書き込みが可能になります。ここで詳細情報を見つけることができます: http://docs.mongodb.org/manual/core/aggregation-pipeline-limits/#agg-memory-restrictions

于 2014-11-27T06:07:27.277 に答える