我必须添加新值(或编辑实际值)company
。我在控制台中尝试了这段代码:
db.users.update({email: /debute/},{company: "test"})
但现在,在数据库中,我只有_id
和company
。为什么删除其他值?或者我怎样才能防止将来删除其他值?
答案 0 :(得分:3)
默认情况下,update
函数会将整个文档替换为您传递的文档。但您也可以使用它来仅替换单个字段,并使用$set operator使其他字段保持不变。
db.users.update({email: /debute/},{ $set: { company: "test"} } );
您可能还想为更新指定第三个参数{ multi: true }
。否则,它只会更新它找到的与条件匹配的第一个文档。
答案 1 :(得分:2)
您需要在订单上使用update operator来更新现有文档,您的代码会用新文档替换文档。以下是更新的方法:
db.users.update({email: /debute/},{$set: {company: "test"}})