将新的mongoose中间件前提条件应用于集合中所有已有的元素

恐怕我已经知道了答案,但我会问。

在mongoose,我只是增加了一个现有的模式的前提条件。 此条件基本上连接对象中所有元素的值,创build一个散列并将其作为另一个字段存储在同一个对象中。 这段代码将从现在开始保存的所有元素上执行,但是我想知道是否可以对所有现有的元素执行它,或者如果我必须编写一个脚本来更新它们。

谢谢!

数据库中的logging不会神奇地更新,您将不得不手动更新它们的第一次。

如果你的新中间件和更新一起工作,你可以find所有的logging并保存。 中间件将被使用,新的字段将被填充。

就像是:

Model.find({}, function(err, records) { records.forEach(function(record) { record.save(function(err) { console.log(err); }); }); } 

如果你的数据库很大,这将会很慢。 在这种情况下会更好地直接更新数据库。