Вот как выглядит моя схема.
const CollectionSchema = new mongoose.Schema({
since: Date,
batch_id: Number,
info: [InfoSchema],
items: [ItemSchema]
});
const ItemSchema = new mongoose.Schema({
name: String,
price: Number,
url: String
});
Я ищу Collection batch_id, Информация о коллекции, Цена товара, URL товара для определенного имени товара. Обратите внимание, что коллекция имеет массив элементов, и мы можем предположить, что имена элементов различны. Приведенный ниже запрос (я думаю) должен вернуть информацию о коллекции + batch_id для коллекций, в которых есть какой-либо элемент с именем 'le go'.
Collections.find(
{ "items.name": 'lego' },
{ info: 1, batch_id: 1 }
)
.where("since")
.gt(minutesAgo)
Я хотел бы включить цену элемента и URL элемента в ответе . Как бы я изменил вызов find (), чтобы вернуть эти данные? Опять же, добавление элементов: 1 добавит все элементы (но я ищу цену и URL только для соответствующего элемента).