2015-05-14 45 views
0

我的meteor.js应用程序中有问题,mongo更加精确。当我试图让我的Meteor.JS应用此更新查询它不工作,它抛出这个错误:MongoDB查询不适用于Meteor.js

Exception while invoking method 'deleteNotifications' MongoError: '$set' is empty. You must specify a field like so: {$mod: {<field>: ...}} 

他抱怨说我没有使用$设置蒙戈国防部,但这里的东西,我不想使用它,你可以在下面看到我的查询(我正在使用coffeescript)。

Messages.update 
    _id: 
    $in: messagesIds 
, 
    $push: 
    readByReceivers: Meteor.userId() 
, 
    multi: true 

所有需要的值都存在,最有趣的是如果我使用$ set而不是$ push,则会处理查询。

当我尝试内部蒙戈流星应用程序,然后在同一查询它的工作完美:

db.messages.update({_id: {$in: ["x6PpcE829GsWarjB5"]}},{$push: {readByReceivers: "nx7XkXsmeMh6pz5n3"}},{multiple: true}) 

为什么流星强迫我使用$设置?

+0

您可以使用一个变量来保存Meteor.userId()函数的值吗? – chridam

+0

所有需要的值都存在,持有Meteor.userId()内部变量,然后使用该变量不会改变任何内容,错误保持不变。 – MatthewK

+0

工作示例:我项目中的'Item.update {_id:itemId},$ push:users:user._id' – none

回答

0

客户端不允许选项multi: true。改为使用流星方法(它可以在服务器上使用)。

相关问题