【发布时间】:2016-10-07 19:26:11
【问题描述】:
我收到一个错误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
}]
}
}
【问题讨论】:
-
是的,我正在循环遍历文档的数组
hearts.records,如果hearts.records[index].expDate比new Date()多 30 天,则将$inc hearts.counter更新为 1,将$set hearts.records[index].expDate更新为新的expDate。我希望这很清楚 -
尝试在另一个属性中添加一个点
hearts.records.${i}.expDate -
我刚刚试了一下。仍然出现同样的错误