Я пытаюсь выдвинуть массив ref
с дополнительными info
, так или иначе, это не работает, когда я создаю, что я должен сделать обновление после создания, даже если код $push
такой же.
Например, для этих двух схем
const ProductSchema = new Schema(Object.assign({
name: {type: String};
});
const ModelSchema = new Schema(Object.assign({
products: [
{
product: { type: Schema.Types.ObjectId, ref: 'Products' },
amount: { type: Number },
price: { type: Number },
discount: { type: Number },
tax: { type: Number },
total: { type: Number },
}
],
}), { timestamps: true });
У меня в массиве есть два таких продукта, которые я пытаюсь как-то передать в ref
const calProducts = [
{
id: "3283982388382938", // this is the product's id
amount: 234,
price: 234,
discount: 0,
tax: 0,
total: 468
},
{
id: "3283982382282938", // this is the product's id
amount: 234,
price: 234,
discount: 0,
tax: 0,
total: 468
}
];
const newProducts = {
$push: { products: { $each: calProducts } } // suppose this should work
};
const newModel = new ModelSchema(newProducts);
newModel.save();
newModel создан, но поле продуктов имеет значение products: []
, для которого мне нужно сделать обновление, такое как
const m = ModelSchema.findOneAndUpdate({
_id = newModel._id
}, {
$push: { products: { $each: calProducts } } // this is exactly the same code, but this works though
});
, теперь я возвращаюсь, чтобы увидеть newModel
, наконец, products
поле больше не пустое.
Какую часть я пропускаю?Заранее спасибо за любую помощь.