Для запроса во встроенные документы я хотел бы вернуть соответствующий элемент плюс заранее определенный набор элементов. Например, сВозможно ли вернуть выделенный подмножество массива встроенных документов из MongoDB
Say у меня есть коллекция, как показано ниже:
{_id: 1,
data:[
{who: 'Alice', score: 20},
{who: 'Brad', score: 25},
{who: 'Charlie', score: 30},
{who: 'Dave', score: 40},
{who: 'Elaine', score: 50},
{who: 'Frank', score: 20}
]},
{_id: 2,
data:[
{who: 'Alice', score: 30},
{who: 'Brad', score: 50},
{who: 'Charlie', score: 68},
{who: 'Dave', score: 20},
{who: 'Elaine', score: 50},
{who: 'Frank', score: 20}
]},
...
Если мне нужно всегда возвращаться Алиса и Брэда, и каждый со счетом равен 50, я предпочитаю использовать
find({data.score: 50}, {'data.who': {'$in': ['Alice', 'Brad', '$']}})
or
aggregate([{'$match': {data.score: 50}},
{'$project': {'data': 1}},
{'$unwind': '$data'},
{'$match': {'data.who': {'$in': ['Alice', 'Brad', '$']}}}])
UNF К сожалению, ни одна из них не работает.
Что было бы правильным путем для его достижения или это возможно?
вы хотите только data.who = Алиса, data.who = Брэд и data.score = 50 правильно? – Yogesh