【发布时间】:2014-05-30 06:55:25
【问题描述】:
基本思路是这样的:
model.find({}, function(err, docs) {
docs.forEach(function(doc) {
// update it with whatever new object
model.update({"category":"cat1"});
});
});
现在我的问题是任何形式的更新/保存都不起作用。我可以使用模型查找、计数等。我试过doc.save(),model.findOneAndUpdate(),对特定字段使用$set参数,它们不起作用。我去 mongo shell 并输入带有参数的更新命令,它起作用了。
有一次它确实有效,是当我尝试从find() 的回调函数之外使用var m = new model({..}) 和m.save() 放置新文档时。但我需要按字段查找文档并更新它们。
我觉得我错过了一些非常基本的东西,有人可以帮助我吗?
编辑:mongoose.disconnect() 稍后在代码中被调用。所以查询没有执行。
【问题讨论】:
-
您确定确实调用了更新函数,例如您是否将
console.log()放在更新上方以便知道该行正在执行? -
我做了,在更新功能之外,每个文档的名称都是为了确定。我什至在回调中放了一个 console.log。有趣的是,回调正在执行,但我没有看到它反映在数据库中。