在MongoDB中,假设我们有一个集合items
,其中包含以下示例数据:
[
{name: "A", locations: [{country: "USA"}, {country: "Germany"}]},
{name: "B", locations: [{country: "USA"}],
{name: "C", locations: [{country: "France"}, {country: "Germany"}]},
{name: "D", locations: [{country: "Germany"}]},
{name: "E", locations: [{country: "USA"}, {country: "UK"}]}
]
我们怎样才能获得name
子文档中只有country: "Germany"
的所有文档的locations
字段?
示例:使用上面的示例集items
,然后执行上述查询应返回[{name: "D"}]
我们怎样才能获得name
子文档中没有locations
或country: France
(或两者)作为元素的所有文档的country: "Germany"
字段?< / p>
示例:使用上面的示例集items
,然后执行上述查询应返回[{name: "B"}, {name: "E"}]
我已经阅读了文档,并尝试了很多东西,最后我用两个步骤来处理它。查询我提出的最具体的查询,然后通过以编程方式循环遍历文档(数组)来过滤不需要的文档。我想知道以前的查询是否可以通过单个查询直接实现。
注意:文档/查询仅为示例,我处理的文档/查询不同。