Mongo无法同时更新2个值

时间:2016-12-21 16:35:27

标签: mongodb meteor mongodb-query

此Meteor服务器代码尝试更新Mongodb集合,但出现错误:

      let originalDoc = original.fetch()[0];
      Meteor.users.update(userId, {
        $set: {
          profile: originalDoc.profile,
          cmpProfile: originalDoc.cmpProfile,
          aaa: originalDoc.aaa
        },
        $unset: {
          'profile.abc': 1
        }
      });

错误:

  

调用方法时出现异常' xyz' MongoError:无法更新'个人资料'和' profile.abc'同时

有什么想法吗? THX

1 个答案:

答案 0 :(得分:1)

错误非常明显:您不能同时$set整个profile$unset profile.abc因为MongoDB不允许此类操作。

您可以在运行查询之前调用$unset而不是调用delete originalDoc.profile.abc;,而是在设置整个嵌入文档时有效删除abc中的profile字段。