如何过滤mongodb中单个json文档中的对象数组?
我对mongodb是一个新手,我的要求是在单个文档的对象数组内过滤如何过滤mongodb中单个json文档中的对象数组?
例如:下面是我的json文档。我想在组合中查询以找到所有具有值“abc manufacturer”的制造商。
我试过的查询是 db.Product.find({"Combinations": {$elemMatch: {"Manufacturer":"abc manufacturer"}}})
。不幸的是,它不会将结果返回给abc制造商,而是全部。
我的结果应该与下面的截图完全相似。因为它在SQL服务器中,现在我想要在MongoDB中的相同的查询。在论坛的一些专家抛出一些光。
{ "_id" : ObjectId("59e8c938ab3166800493273f"), "ProductId" : 26, "Combinations" : [ { "#Type" : "S", "Manufacturer" : "abc manufacturer", "Model Name" : "Squatting Urinal", "Size" : "475 x 365 x 105 mm", "Colour" : "White" }, { "#Type" : "S", "Manufacturer" : "abc manufacturer", "Model Name" : "Squatting", "Size" : "430 x 350 x 100 mm" }, { "#Type" : "S", "Manufacturer" : "def manufacturer", "Model Name" : "Squatting Urinal", "Size" : "440 x 355 x 102 mm", "Colour" : "White" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Squatting Urinal", "Size" : "440 x 355 x 102 mm", "Colour" : "Ivory" }, { "#Type" : "S", "Manufacturer" : "ghi manufacturer", "Model Name" : "Squatting Pan - 861" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Mateo", "Size" : "470 x 365 x 100 mm" }, { "#Type" : "S", "Manufacturer" : "xyz manufacturer", "Model Name" : "Squatting", "Size" : "340 x 435 x 100 mm", "Colour" : "White" } ] }
如果我知道你要搜索的内容,是所有组合其中厂商是ABC。 您刚刚进行的查询为您提供了包含组合与所述制造商的所有文档。
您应该检查aggregations
。