2

次のデータセットがあるとします。

{ "_id" : ObjectId("510458b188ce1d16e616129b"), "codes" : [ "oxtbyr", "xstute" ], "name" : "Ciao Mambo", "permalink" : "ciaomambo", "visits" : 1 }
{ "_id" : ObjectId("510458b188ce1d16e6161296"), "codes" : [ "zpngwh", "odszfy", "vbvlgr" ], "name" : "Anthony's at Spokane Falls", "permalink" : "anthonysatspokanefalls", "visits" : 0 }

この python/pymongo ソートを MongoDB 集約フレームワークで動作するものに変換するにはどうすればよいですか? 配列内のコード数に基づいて結果を並べ替えていますcodes

z = [(x['name'], len(x['codes'])) for x in restaurants]
sorted_by_second = sorted(z, key=lambda tup: tup[1], reverse=True)
for x in sorted_by_second:
    print x[0], x[1]

これpythonで機能します。MongoDBクエリの終わりで同じ目標を達成する方法を知りたいだけです。

4

1 に答える 1

3
> db.z.aggregate({ $unwind:'$codes'}, 
                 { $group : {_id:'$_id', count:{$sum:1}}}, 
                 { $sort :{ count: 1}})
于 2013-01-29T00:20:41.203 に答える