Meteor MongoDB文档更新

时间:2016-10-07 10:20:25

标签: mongodb meteor

我收到错误MongoError: The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage.

const modifier = { $set: {}, $inc: { 'hearts.counter': 1 } };
modifier.$set[`hearts.records${i}.expDate`] = expDate;
Meteor.users.update(lookUpUser._id, { modifier });

到目前为止,我试过了:

Meteor.users.update(lookUpUser._id, modifier);

const modifier = { $set: {}, $inc: {} };
modifier.$inc['hearts.counter'] = 1;

我做错了什么?有人可以帮帮我吗?

编辑: 我的用户集合如下所示:

{
  "_id": "xxxxx",
  "username": "xxxx",
  "hearts": {
    "counter": 0,
    "records": [{
      "owner": "xxxxx",
      "expDate": Date
    }, {
      "owner": "xxxxx",
      "expDate": Date
    }]
  }
}

1 个答案:

答案 0 :(得分:0)

我认为你这样做的方式, out.write('\t'.join([line[0], str(q_start), str(q_end)] + line[3: ]) + '\n') 是一个数组,而不是一个对象。正如@chridam所提到的,你可能需要添加一个点。试试这个:

$set

或直接:

const modifier = { $set: {}, $inc: { 'hearts.counter': 1 } };
modifier.$set = { [`hearts.records.${i}.expDate`]: expDate }
Meteor.users.update(lookUpUser._id, modifier);