我想更新一个数组值,但我不确定执行此操作的正确方法,所以我尝试了以下方法但对我没有用。
我的模型,我的模型中的孩子字段
childrens: {
type: Array,
default: ''
}
我的查询,
Employeehierarchy.update({ _id: employeeparent._id} ,{ $set: {"$push": { "childrens": employee._id }} })
.exec(function (err, managerparent) {});
谁能给我帮助。谢谢。
原文由 MMR 发布,翻译遵循 CC BY-SA 4.0 许可协议
您不能在与嵌套运算符相同的更新表达式中同时使用
$set
和$push
。使用 更新运算符 的正确语法如下:
其中
<operator1>, <operator2>
可以来自 此处 指定的任何更新运算符列表。要向数组添加新元素,单个
$push
运算符就足够了,例如,您可以使用findByIdAndUpdate
更新方法将修改后的文档返回为使用您原来的
update()
方法,语法是其中回调函数接收参数
(err, raw)
其中err
如果发生任何错误raw
是 Mongo 的完整回复由于您要检查修改后的文档,我建议您使用
findByIdAndUpdate
函数,因为update()
方法不会给您修改后的文档,只是来自 mongo 的完整写入结果.如果您想更新文档中的字段并同时将元素添加到数组中,那么您可以这样做
以上将
name
字段更新为“foo”,并将员工 ID 添加到childrens
数组中。