Выборка по двум условиям
В данном случае нужно выбрать только объекты где совпадают оба условия, т.е. конкретный автор
{authors: [
{"surname": "Smith","name": "R."},
{"surname": "Chalaev", "name": "M."},
{"surname": "Robertson","name": "J." }
]},
{authors: [
{"surname": "Smith", "name": "S."},
{"surname": "Chalaev","name": "R."},
{"surname": "Robertson","name": "P." }
]},
{authors: [
{"surname": "Smith", "name": "K."},
{"surname": "Chalaev","name": "R."},
{"surname": "Silverson","name": "P." }
]}
db["authors"].aggregate([
{$match: {'authors.surname': 'Chalaev','authors.name': 'R.'}}
])
В представленном решении выборка идет отдельно по surname и отдельно по name, поэтому ответ неправильный. Прошу подсказать с правильным решением именно через aggregate. через find решается $elemMatch