此更新功能可能出现什么问题?
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字段已经存在,在某些情况下它不存在,但更新应该添加一个字段,如果它不存在,对吧?
我尝试添加回调,但似乎没有运行。 (我无法为更新函数找到一个好的回调示例。)无论如何,根据文档,如果更新失败,我应该在控制台中收到错误消息。我还在运行不安全的软件包,因此不必担心允许或拒绝规则。我真的很难过!
答案 0 :(得分:1)
在这种情况下,问题是简单的拼写错误,rec._ID
与rec._id
不同。由于MongoDB ObjectID
的共同资本化,这可能被忽略了。