Meteor mongo查询问题:MongoError:指定$ gt的无效修饰符

时间:2014-10-01 00:19:35

标签: mongodb meteor

我正在尝试编写一个mongo查询来更新集合。

在SQL中它看起来像这样:

UPDATE myCollection SET count=(count-1)
WHERE otherCollectionId=otherCollection._id 
  AND otherCollectionUserId='HFDDEE78DFDSER34' 
  AND count > 0

我尝试了一些东西,但这个绝对不行。我收到了错误:

MongoError: Invalid modifier specified $gt

到目前为止我的mongo查询:

myCollection.update({otherCollectionId: otherCollection._id, 
                     otherCollectionUserId: Meteor.userId()
                    },
                    {$gt: {count: 0},
                     $inc: {count: -1}
                    });

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我认为这可能是你想要的:

myCollection.update(
  {
    otherCollectionId: otherCollection._id,
    otherCollectionUserId: Meteor.userId(),
    count: {$gt: 0}
  },
  {$inc: {count: -1}},
  {multi: true}
);

选择器的所有三个部分都是AND,然后我们将count增加-1,最后查询将运行多个文档(而不仅仅是匹配选择器的第一个文档)。