Ответ 1
Вы должны использовать dot notation:
bios.find({"_id" : 1, "awards.year" : 1975 });
Это довольно бессмысленный запрос, потому что у вас также есть _id
в запросе, но я предполагаю, что из-за того, что вы играете с примером. Кроме того, вы говорите, что ищете награды с 1967 года, но код говорит 1975 год.
Если вы ищете "awards" : { "year" : 1975 }
, mongodb будет искать точное соответствие всего вложенного документа awards
. В этом случае это не то, что вы хотите. Кроме того, поскольку awards
является массивом, это всегда будет false. Если бы вы захотели найти конкретный документ о награде в списке, $elemMatch
, это будет путь.