Я пытаюсь запросить коллекцию пользователя с несколькими вложенными объектами, и я не уверен, как правильно использовать операторы проектирования (например, $), поскольку они, похоже, работают для массивов, а не для объектов.Запрос вложенных объектов в mongodb
Каждый пользователь имеет объект «booksRecords», имеющий несколько книжных объектов (например, hc_1_3, hc_1_4 и т. Д.). Каждый книжный объект имеет поле под названием currLevel, и я пытаюсь найти детей, у которых есть хотя бы один объект книги, где currLevel: «детская».
Я пробовал делать User.find ({'booksRecords. $. CurrLevel': 'nursery'}), но это, похоже, не работает, и мне интересно, какой правильный способ запросить вложенные объекты?
Я проверил Querying nested in mongoDB, но он отличается от моего случая, поскольку я запрашиваю вложенные объекты.
[
//first object
{
_id: "xxx",
booksRecords: {
hc_1_3: {
markedRead: false,
currLevel: "elementary"
},
hc_1_2: {
markedRead: false,
currLevel: "elementary"
}
}
},
//second object
{
_id: "xyz",
booksRecords: {
hc_1_3: {
markedRead: false,
currLevel: "elementary"
},
hc_1_2: {
markedRead: false,
currLevel: "nursery"
}
}
}
]