2016-10-05 2 views
0

が返さ:フィルター、私は以下のような文書のコレクションを持っていると私は情報を取得したいことを考えると、コレクションが、ソート、内側財産上の

はソート降順でentries.questionscorrectにより、campaignID = 12でキャンペーンからすべてのエントリを選択します注文数を制限します。

私はいくつかのクエリでスタブを作成しましたが、私は1つのレベルで選択していますが、下位レベルのプロパティで注文したいという事実に悩まされているようです。

は、ここで私がこれまで持っているものです。

db.getCollection('main').find({"id":4}, {"entries": 1}).sort({"questionscorrect": -1}).limit(2)

にはどうすればゴー(MGO)構文またはストレートMongoDBのクエリのいずれかでこれをしてください書くことができますか?

私は、以下のお試し情報を返されたが、

{ 
    "_id": ObjectId("57f4a590a4be269aa54a0505"), 
    "campaignID": 12, 
    "name": "name-here", 
    "description": "description-here", 
    "entries": [{ 
     "id": 1, 
     "nickname": "conorh", 
     "name": "conor h***", 
     "email": "[email protected]", 
     "agreeTerms": true, 
     "optInMarketing": false, 
     "questionscnswered": 10, 
     "questionscorrect": 3 
    }, { 
     "id": 2, 
     "nickname": "bobs", 
     "name": "bob smyth", 
     "email": "[email protected]", 
     "agreeTerms": true, 
     "optInMarketing": false, 
     "questionscnswered": 10, 
     "questionscorrect": 6 
    }, { 
     "id": 3, 
     "nickname": "jd12", 
     "name": "jane doe", 
     "email": "[email protected]", 
     "agreeTerms": true, 
     "optInMarketing": false, 
     "questionscnswered": 10, 
     "questionscorrect": 1 
    }] 
} 
+0

それは期待される結果が何であるかは不明です。あなたは詳細を教えていただけますか? – styvane

答えて

0

の数でソート得続ける:

db.getCollection('main').aggregate([ 
{$match: {"campaignID" : 12.0}}, 
{$unwind:"$entries"}, 
{$sort: {"entries.questionscorrect": -1}}, 
{$group:{_id:"$_id", 
    "entries":{$push:"$entries"}}} 
]) 
関連する問題