流星:mongodb更新不起作用

时间:2015-03-21 22:46:21

标签: mongodb meteor

此更新功能可能出现什么问题?

fixrecs2 = function() {

      var arr = myColl.find({ d: 1 }).fetch();

      for (var i = 0; i < arr.length; i++) {

       var code = arr[i].c;

       var rec = myOtherColl.findOne( { cc: code });

       if (rec) {

          c(rec._id)

          myOtherColl.update( {_id: rec._ID }, { $set: {dt: "ant"}  } ); 
       }

  }

console.log(i + " records processed.");
}

我以前从未遇到过更新文档的问题。检查控制台中的输出,我可以告诉我期望找到的所有记录都在那里。我可以看到他们的_id值由console.log()打印。但是dt字段没有更新。在某些情况下,dt字段已经存在,在某些情况下它不存在,但更新应该添加一个字段,如果它不存在,对吧?

我尝试添加回调,但似乎没有运行。 (我无法为更新函数找到一个好的回调示例。)无论如何,根据文档,如果更新失败,我应该在控制台中收到错误消息。我还在运行不安全的软件包,因此不必担心允许或拒绝规则。我真的很难过!

1 个答案:

答案 0 :(得分:1)

在这种情况下,问题是简单的拼写错误,rec._IDrec._id不同。由于MongoDB ObjectID的共同资本化,这可能被忽略了。