这是我的用户收藏
{ _id: ObjectId("589803bf53860d4a3475afa3"),
"username": "fadeltd",
"gender": "Male",
"updatedAt": ISODate("2017-02-06T05:03:59.969Z"),
"createdAt": ISODate("2017-02-06T05:03:59.969Z"),
"shoppingList": [{
"title": "Personal List",
"ingredients": ["5 Eggs"]
}]
})
我想做的是将数据推送到我的购物 list ,使用$addToSet
,这样就不会出现重复的购物 list 数据
这是我的脚本
User.update({
_id: ObjectId("589803bf53860d4a3475afa3"),
'shoppingList.title': "Personal List"
},
{
$addToSet: {
"shoppingList.$.ingredients": ["5 Eggs", "3 Milks"]
}
})
但是当我尝试该脚本时,我得到了这个
{ _id: ObjectId("589803bf53860d4a3475afa3"),
"username": "fadeltd",
"gender": "Male",
"updatedAt": ISODate("2017-02-06T05:03:59.969Z"),
"createdAt": ISODate("2017-02-06T05:03:59.969Z"),
"shoppingList": [{
"title": "Personal List",
"ingredients": ["5 Eggs", ["5 Eggs", "3 Milks"]],
}]
})
我希望成分为 ["5 Eggs", "3 Milks"]
而不是嵌套数组 ["5 Eggs", ["5 Eggs", "3 Milks"]]
最佳答案
使用$each
修饰符,允许您向数组添加多个值
User.update(
{
"_id": ObjectId("589803bf53860d4a3475afa3"),
"shoppingList.title": "Personal List"
},
{
"$addToSet": {
"shoppingList.$.ingredients": {
"$each": ["5 Eggs", "3 Milks"]
}
}
}
)
关于javascript - 将数组添加到现有的嵌套数组而不重复 mongodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42062331/