[英]Mongoose findOneAndUpdate doesn't find (or update) in Node
[英]Node/mongoose saving complex schema with error doesn't save or update
嗨,我有一個復雜的架構,我試圖保存在mongodb中,但是有問題。
const itemsSchema =new Schema({
cat: {type: String, required: true},
catItems: [{
items:{type: String},
isActive: {type: Boolean, default: true}
}]
});
module.exports=mongoose.model('CatItem', itemsSchema, 'catitems');
使用貓鼬,我這樣保存它。
CatItem.findOneAndUpdate({'_id': req._id, 'catItems._id': req.catItems._id}, {$set: {catItems.items: req.catItems.items}, {upsert: true}, (err, catitems) =>{
If(err) return callback(err);
return (catitems)
});
當我嘗試使用上面的方法保存它時,不保存不會給出任何特定的錯誤,只是回調不是函數。 如果我再次使用res.send更改回調,則send不是函數。 它甚至不保存。 請讓我知道如何解決它。 謝謝
您無法通過使用set來更新嵌套文檔中的數組字段:
{$ set:{catItems.items:req.catItems.items}
改用:
{$set: {catItems.0.items: req.catItems.items} for updating the first record of
the array. or instead manipulate in middleware function.
like:
CatItem.findOneAndUpdate({'_id': req._id, 'catItems._id': req.catItems._id},
(err, catitems)=>{
catItems.items = req.catItems.items;
catItems.save();
return (catitems)
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.