0
我看到我的數據的每個相關鏈接沒有一個適當的解決方案。 我的模式是這樣的:更新,如果存在插入,如果它不存在子文檔在貓鼬
{
"_id" : ObjectId("590aa0e68d4b23760d8d0e50"),
"updatedAt" : ISODate("2017-05-08T07:03:08.314Z"),
"createdAt" : ISODate("1987-12-31T16:00:00.000Z"),
"Avatar" : "public/image/test.pic",
"countries" : [
{
"code" : "MY",
"is_favourite" : false,
"is_visited" : true,
},
{
"code" : "CA",
"is_favourite" : true
}
]
}
我想補充一個國家是這樣的:
{
"code" : "QC",
"is_favourite" : true
}
,如果確實存在,它只是從虛假到真實的或反之亦然更新,否則插入新對象。
我爲它編寫代碼,但它看起來很長的故事,並且它在插入模式下不能正常工作(得到此錯誤:位置操作符未找到所需的匹配查詢)。我將不勝感激任何幫助....
var query = {"_id":req.params._id, "countries":{$elemMatch:{code:req.body.code}}}
var update = { $set: {"countries.$.is_favourite": req.body.is_favourite}}
var option = {"upsert": true}
User.findOneAndUpdate(query,update,option, function (err, user) {
if (err) return next(err);
return res.status(201).json({
success: true,
message: 'country '+ '<'+req.body.code+'> '+ 'updated as '
+req.body.is_favourite
});
});