【问题标题】:Meteor - Mongo Write errorMeteor - Mongo 写入错误
【发布时间】:2013-09-02 00:52:25
【问题描述】:

当我尝试使用最新版本的 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

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您使用 5 个参数调用 Collection.update,这有点太多了。在docs 中了解它。

      【讨论】:

        【解决方案3】:

        我在这段代码上得到了同样的结果:

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

        仅作记录,我仍在使用 0.7.0,这种类型的查询在 0.8.1 版本之前运行良好。它到底是如何影响旧的 0.7.0 甚至没有我更新是无法理解的。他们是否将 remove 的行为更改为现在自动对其找到的所有内容执行 {multi: true},因为这是我从 Peppe L-G 的链接中了解到的。

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

        【讨论】:

        • 我还删除了 {multi:true} 并停止看到错误。据我了解,这不是“预期的”行为,因为在 mongo 中进行删除(没有多重)只会删除一个文档。但现在这似乎可行。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-08-02
        • 1970-01-01
        • 1970-01-01
        • 2021-08-28
        相关资源
        最近更新 更多