重命名mongoDB中的字段并同时设置newValue

时间:2016-11-02 15:18:32

标签: mongodb set rename

我想重命名MongoDB中的字段,然后使用旧字段名称设置新值:这是示例:

 db.exemption.update({'ref':163},{$rename: 
 {'request.reference':'request.oldRef'},$set:
 {'request.reference':'00000'}},true,true) 

但heri我得到的错误

{ [MongoError: Cannot update 'request.reference' and 'request.reference' at the same time]
  name: 'MongoError',
  code: 16837,
  err: 'Cannot update \'request.reference\' and \'request.reference\' at the same time' }

有没有可能的方法来更新这个字段,尽管使用2个查询mongo?

1 个答案:

答案 0 :(得分:1)

你可以做到

 db.exemptions.update({ref: <value>}, {
     $unset: {'request.oldRef': 1},
     $set: {'request.reference': <new value>}
 });

它并不真正重命名字段,但它会给你相同的结果。