これは、1つのmonggodbコレクションにあるドキュメントの構造です。 キー "コード"と、入れ子になったjsonのインデックス位置のグループ化されたカウントのmongo集計をどのように行うことができるかを理解したかったのです。列とインデックス位置でグループ化されたカウントmongodb
{
"_id" : ObjectId("5749e9fde4b0064e7362b560"),
"_class" : "com.weirdcompanyname.core.collectionname",
"rfId" : 1,
"scheduleds" : [
{
"code" : "556e4835f1eae40bdfa2f2001f2afc76",
"type" : "HT",
"priority" : 0
},
{
"code" : "8b2ab67af4f60e42f7ea64813b5795cf",
"type" : "HT",
"priority" : 1
},
{
"code" : "ed17101eb918b4d8c7c598e4884523ea",
"type" : "HT",
"priority" : 2
},
{
"code" : "7e0ffb4db",
"type" : "QZ",
"priority" : 3
},
{
"code" : "1453dfa1794f39b05f0259ad04699073",
"type" : "HT",
"priority" : 4
}
],
"created" : ISODate("2016-05-28T18:57:00.878Z")
}
私は見つけようとしている結果は次のとおりです。
code index_position count
556e4835f1eae40bdfa2f2001f2afc76 0 100
8b2ab67af4f60e42f7ea64813b5795cf 1 100
ed17101eb918b4d8c7c598e4884523ea 2 100
7e0ffb4db 3 100
1453dfa1794f39b05f0259ad04699073 4 100
私は聞かせての、単一のアレイにネストされたJSONを巻き戻し、その後、コードと、おそらく他の列の上にコードをグループ化するのまわりで私の頭を得ることができます優先順位とカウントを持っているが、問題はインデックスの位置を取得することです。
これはmongoでも可能ですか?私はそれについてたくさんのことを読んだことがあります。私はポジションが必要な価値があると考えましたが、それは実行可能ですが、本当に価値がありません私が探しているのは、それぞれのコードと "スケジュールされた"数とそのインデックス位置です。 は、これは私が私の限らモンゴ照会スキルで何ができるかである:配列インデックスの巻き戻し
db.collectionname.aggregate([{'$match':{'date_key':{'$gte': yesterday_beginning, '$lte': yesterday_end}}}, {'$unwind':'$scheduleds'}, {'$group':{'_id':{'code':'$scheduleds.code','priority':'$scheduleds.priority'}, 'rfid':{'$addToSet':'$rfId'}}}, {'$project':{'_id':0, 'code':'$_id.code', 'priority':'$_id.priority', 'totalRfid':{'$size':'$rfid'}}}, { $limit : 1000 }],{ allowDiskUse:true})