有没有任何方法可以在没有根文档的情况下从集合的字段(数组)中选择所有嵌入式文档?例如,给定这个集合MongoDB按照无标准条件选择所有嵌入式文档
{ "_id" : 1, "cars" : [{"brand": "audi", "color": "red"}, {"brand": "audi", "color": "yellow"}]}
{ "_id" : 2, "cars" : [{"brand": "audi", "color": "blue"}, {"brand": "seat"}]}
我想与下面的输出选择所有汽车品牌audi
{"brand": "audi", "color": "red"}
{"brand": "audi", "color": "blue"}
{"brand": "audi", "color": "yellow"}
这似乎并不可能只db.collection.find()
与projection
,因为它的匹配标准始终与根文档相关。
@SagarReddy这将选择至少有一辆汽车匹配brand ='audi'的所有根对象。但是例如,第二份文件中的“座位”车辆将被错误地包括在内。 –
'db.collection.find({'cars.brand':'audi'},{'cars。$':1})' – styvane
@Styvane这将只会得到第一个匹配记录。我认为OP需要所有匹配的条目。 – Veeram