2014-06-24 50 views
0

我有以下收集记录:MongoDB中找到的所有记录与子文档ID等于

> db.products.find(ObjectId("53a9a6aad901f2961403fc9b")).pretty() 
{ 
    "_id" : ObjectId("53a9a6aad901f2961403fc9b"), 
    "code" : "N39", 
    "name" : { 
     "en-UK" : "N39" 
    }, 
    "weight" : [ 
     90 
    ], 
    "collectionId" : ObjectId("53a9a6a8d901f2961403fbe2"), 
    "fabric_composition" : [ 
     { 
      "fabricId" : ObjectId("53a9a6a9d901f2961403fc69"), 
      "value" : 70 
     } 
     { 
      "fabricId" : ObjectId("53a9a6a9d901f2961403fc6a"), 
      "value" : 30 
     } 
    ], 
    "visible" : "true", 
    "manufacturer" : "53a859d9d901f2e8f81ac83b" 
} 

> db.fabric.find().pretty() 
{ 
    "_id" : ObjectId("53a9a6a9d901f2961403fc69"), 
    "name" : [ 
     { 
      "en-UK" : "Recycled Organic Cotton" 
     } 
    ] 
} 
{ 
    "_id" : ObjectId("53a9a6a9d901f2961403fc6a"), 
    "name" : [ 
     { 
      "en-UK" : "Recycled Polyester" 
     } 
    ] 
} 

如何查询MongoDB的集合products列出有fabric_composition所有产品以ObjectIdRecycled Organic Cotton为例?

任何意见大加赞赏

回答

2

您需要使用使用dot notation查询子文档:

db.products.find({ 
    "fabric_composition.fabricId" : ObjectId("53a9a6a9d901f2961403fc69") 
}); 

此查询将返回至少有一个子文档与您正在寻找fabricId所有文件。

相关问题