如何在mongodb的单个json文档中过滤对象数组? [复制]
Posted
技术标签:
【中文标题】如何在mongodb的单个json文档中过滤对象数组? [复制]【英文标题】:How to filter in array of objects within a single json document in mongodb? [duplicate] 【发布时间】:2017-10-19 16:29:06 【问题描述】:我是 mongodb 的新手,我的要求是在单个文档的对象数组中进行过滤
例如:下面是我的 json 文档。我想在组合中查询以找到所有值为“abc 制造商”的制造商。
我尝试的查询是
db.Product.find("Combinations": $elemMatch: "Manufacturer":"abc manufacturer")
。不幸的是,它没有返回 abc 制造商的结果,而是全部返回。
我的结果应该与下面附上的屏幕截图完全相同。由于它在sql server中,现在我想要在mongodb中进行相同的等效查询。论坛中的一些专家给我一些启发。
Screenshot
"_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"
]
【问题讨论】:
【参考方案1】:如果我了解您要搜索的内容,那么 制造商 是 abc 的所有组合。 您刚刚执行的查询为您提供了包含与所述制造商的组合的所有文档。
你应该检查aggregations
。
https://docs.mongodb.com/manual/aggregation/
【讨论】:
以上是关于如何在mongodb的单个json文档中过滤对象数组? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
带有 C#Driver 的 MongoDB:如何过滤嵌套对象数组中的字段