[英]Cannot $push item into array with mongoose
我正在嘗試使用POST請求將項添加到用戶對象中的集合中。
User.findOneAndUpdate(
{"_id": req.body.userid},
{$push: {'shopping_list': req.body.itemid}},
{safe: true, upsert: true},
function(err, Model){
console.log(err, Model);
if(err){
handleError(res, err);
}
return res.status(201).json(Model);
}
);
我一直收到以下錯誤:
{“name”:“MongoError”,“message”:“exception:'$ push'為空。您必須指定如下字段:{$ push:{:...}}”,“value”:{“ _id “:” 5546cc0483b0186428e252cc”, “電子郵件”: “lilly@test.com”, “passwordHash”: “Q + VpK9L + I / DhAm7w01AArMacBkXEdyHp3zGF6JyJVzDhwgHpws4z8IBxycI7xrRX6Do2AEe / BvI37HauvAc6WA ==”, “鹽”: “0Bi6XW0YuxutizQY3PZH4Q ==”, “預算” :5000,“shopping_list”:[],“櫥櫃”:[],“飯”:[],“__ v”:0},“errmsg”:“例外:'$ push'為空。你必須指定一個字段像這樣:{$ push:{:...}}“,”code“:9,”ok“:0}
我不明白為什么會發生這種情況,因為字段'shopping_list'清晰可見並且值傳遞...
誰知道我做錯了什么?
默認情況下,Mongoose不會更新未出現在模型架構中的字段。
因此,要么將shopping_list
添加到架構中,要么將架構上的strict
選項設置為false
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.