我正在使用node和mongoose从一个RETS(XML)源中提取数据并将其保存到本地的MongoDB中。
周期性地,我需要更新文档并删除不活动的文档以及添加新文档。为了避免对Mongo或RETS服务器进行多次查询,我同时获取它们并循环遍历数据。
这种方法虽然有效,但是否有一种方法可以将Mongoose的结果保存回数据库并进行更新和插入操作呢?还是说我需要找到每个文档并逐个更新它们?
为了完整起见,如果有多个查询条件,并且希望为每个匹配查询条件的文档添加新字段,则可以使用
var bulk = Person.collection.initializeUnorderedBulkOp();
bulk.find(query1).update(update1);
bulk.find(query2).update(update2);
bulk.execute(callback);
db.collection.initializeUnorderedBulkOp()
:
{ multi: true }
选项。如此处所述。 - Gianfranco P.await
update()
函数并且不传递回调函数,则它将按预期工作。https://mongoosejs.com/docs/documents.html#updating - Gianfranco P.