omi*_*idh 5 javascript mongoose mongodb node.js
使用 Mongoose,如何向对象添加更多项目而不替换现有项目?
User.findOneAndUpdate(
{ userId: 0 },
{ userObjects: { newItem: value } }
);
Run Code Online (Sandbox Code Playgroud)
上面代码的问题是,当我想要它只是将另一个项目添加到 userObjects 时(例如 JavaScript 数组的推送功能),它会清除之前的所有内容并用 newItem 替换它。
使用点表示法指定要更新/添加嵌入文档中的特定字段的字段。
User.findOneAndUpdate(
{ userId: 0 },
{ "userObjects.newerItem": newervalue } }
);
Run Code Online (Sandbox Code Playgroud)
或者
User.findOneAndUpdate(
{ userId: 0 },
{ "$set":{"userObjects.newerItem": newervalue } }
);
Run Code Online (Sandbox Code Playgroud)
或使用 $mergeObjects 聚合运算符通过传递新对象来更新现有 obj
User.findOneAndUpdate(
{"userId":0},
[{"$set":{
"userObjects":{
"$mergeObjects":[
"$userObjects",
{"newerItem":"newervalue","newestItem":"newestvalue"}
]
}
}}]
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6069 次 |
最近记录: |