почему нельзя создать массив ссылок при создании?мангуста - PullRequest
0 голосов
/ 20 сентября 2018

Я пытаюсь выдвинуть массив 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 поле больше не пустое.

Какую часть я пропускаю?Заранее спасибо за любую помощь.

...