Я работал с mongoose, чтобы заполнить поле идентификаторов соответствующими документами в новом поле. Мой вопрос предполагает, что моя модель корзины -
let CartSchema = new mongoose.Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
productIds: [
{
type: mongoose.Schema.Types.ObjectId,
ref: 'Product'
}
]
});
Я хочу заполнить продукты, поэтому я использовал
Cart.find({}).populate("products").exec(function (err, cart) {
console.log(cart)
}
, но это заполняет документы с тем же именем поля productIds, и я хочу заполнить эти поля новым именем поля с именем "products", поэтому я попробовал это
let CartSchema = new mongoose.Schema({
userId: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
productIds: [
{
type: String
}
]
}, { toJSON: { virtuals: true } });
CartSchema.virtual('products', {
ref: 'Product',
localField: 'productIds',
foreignField: '_id',
});
Cart.find({}).populate("products").exec(function (err, cart) {
console.log(cart)
}
, но вернулпустой массив с именем products.so как я могу заполнить массив productIds новым именем поля products с соответствующим массивом документов.
Спасибо.