2017-02-20 77 views
0

我在蒙戈分貝以下JSON對象中,有在文檔中周圍300對象,什麼是檢索所有category下ticket.seating,如何獲取嵌套文檔下的所有類別?

{ "_id": "58a1ddcb8850c027298c4dc8", "name": "Listing 1", 
"description": "", "ticket": { 
    "amount": 2, 
    "type": "electronic", 
    "splitType": 2, 
    "seating": [ 
     { 
     "category": 1, 
     "section": 2, 
     "row": 2 
     }, 
     { 
     "category": 3, 
     "section": "uiui", 
     "row": 33 
     } 
    ] }, "metadata": { 
    "user": {}, 
    "event": {}, 
    "venue": {} }, "listingId": "aabb1cb6-4e79-4d48-9451-e5247230d397" } 

預計產量查詢:

1,3

+0

所有不同的類別請加預期輸出 – felix

+0

@felix上述 – user2280016

回答

3

可以使用MongoDB Distinct功能這一點。如圖樣品下面

db.getCollection('collection_name').distinct("ticket.seating.category"); 

它會給你在陣列等[1,3]

+0

我怎麼能用貓鼬做? – user2280016

+0

而不是db.getCollection('collection_name')使用貓鼬模型。 例如 - 票是貓鼬模型, Ticket.distinct(「ticket.seating.category」,{/ *您想提及的任何其他情況* /}) –

2

這應該做的伎倆

db.collection.aggregate([ 
    { 
     $unwind:"$ticket.seating" 
    }, 
    { 
     $group:{ 
     _id:null, 
     category:{ 
      $push:"$ticket.seating.category" 
     } 
     } 
    } 
]) 

輸出:

{ "_id" : null, "category" : [ 1, 3 ] } 
+0

返回0加入,文檔名稱是_listing_seller – user2280016

+0

@ user2280016你的意思是集合名稱? – felix

+0

@felix我認爲使用不同的方法比展開和組合更好。 –

相關問題