Есть ли способ выбрать все вложенные документы из поля коллекции (массива) без корневого документа? В приведенном примере это коллекция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 Это выберет все корневые объекты, имеющие по крайней мере один автомобиль, соответствующий бренду = 'audi'. Но, к примеру, во втором документе будет ошибочно включен один «сидевший» автомобиль. –
'db.collection.find ({'cars.brand': 'audi'}, {'cars. $': 1})' – styvane
@Styvane Это будет только первая соответствующая запись. Я думаю, что OP нуждается во всех соответствующих записях. – Veeram