2017-02-20 38 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我认为使用不同的方法比展开和组合更好。 –

相关问题