Я новичок в MongoDB, пытаясь заселить данные из другой коллекции в ответ. Простейший пример будет выглядеть следующим образом:Можно ли заполнять вложенные ссылки в Mongoose?
const CartSchema = new Schema({
items: [{
product: { type: Schema.Types.ObjectId, ref: 'product' },
qty: Number
}],
...
});
Я могу использовать .populate()
когда отношения находятся на корневом уровне, но в приведенном выше примере, у меня есть массив элементов с их собственными свойствами, например qty
, плюс _id
ссылка на товар. Я хотел бы заполнить объект продукта в каждом элементе автомобиля, но, похоже, не может найти примеров того, что является «правильным» способом сделать это.
Cart.findById(id)
.populate('products') // <-- something like this
.then(record => ...)
.catch(next);
Я знаю, что я мог бы сделать отдельный .find()
по сбору продуктов после размещения корзины записи и вручную расширить исходный объект, но я надеялся, что там был способ заполнения данных в исходном запросе?