Meteor - Mongo 写入错误

3

当我尝试使用最新版本的meteor.js进行更新时,出现了意外错误。类型错误没有指定失败的字段,我不确定这是否与mongo有关。有人见过这个错误吗?

Error in Mongo write: TypeError: boolean is not a function
I20130901-19:44:56.515(-5)?     at writeCallback (packages/mongo-livedata/mongo_driver.js:206)
I20130901-19:44:56.515(-5)?     at Meteor.bindEnvironment.runWithEnvironment (packages/meteor/dynamics_nodejs.js:69)

我通过在服务器端调用时指定回调函数,成功阻止了客户端的阻塞。 https://gist.github.com/warsamebashir/6408451
3个回答

5

当我在服务器上将Collection.remove的第二个参数传递为{multi:true}时,通常会发生这种情况。


1

您正在使用5个参数调用Collection.update,这有点过多。请在文档中阅读相关内容。


0

我在这段代码上也遇到了同样的问题:

Templates.remove({_id: {$in: templateIDs}}, {multi:true});

仅供记录,我仍在使用0.7.0版本,在发布0.8.1版本之前这种类型的查询完美无缺地运行着。他们如何在我没有更新的情况下影响旧的0.7.0版本是超出理解范围的。他们是否改变了remove的行为,现在对其找到的所有内容自动执行{multi:true},因为这就是我从Peppe L-G的链接中理解到的。

编辑1:后续,确实删除,{multi:true}解决了问题,虽然它仍然会删除在mongodb中匹配的所有文档。这要么是我将mongodb从2.4.9更新到2.4.10,要么是他们在0.7.0版本中进行了更新以修复Meteor的行为。


我也移除了 {multi:true} 并且不再看到错误。据我所知,这不是“预期”的行为,因为在Mongo中执行删除操作(不使用multi)只会删除单个文档。但目前看起来这样可以工作。 - Michael G.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接