9

我正在从 RETS(XML) 提要中提取数据,并使用节点和猫鼬将其保存在本地 MongoDB 中。

我需要定期更新文档并删除不活动的文档以及添加新文档。我没有对 Mongo 或 RETS 服务器进行多次查询,而是同时拉取并循环访问数据。

这很好用,但是有没有办法通过更新和插入将 Mongoose 结果保存回数据库?还是我需要找到每个文档并单独更新?

4

2 回答 2

13

在 MongoDB 上,要使用 Mongoose 更新多个文档(不仅仅是一个),您可以使用multi选项:

Model.updateMany({ 
  size: 'lage'
}, { 
  $set: { size: 'large' }
});

在 Mongoose 文档中查看更多关于更新文档这里

于 2012-08-28T15:05:20.703 回答
6

为了完整起见,如果任何人有多个查询条件,并且想为查询条件的每个匹配文档添加新字段,那么我们可以使用

var bulk = Person.collection.initializeUnorderedBulkOp();
bulk.find(query1).update(update1);
bulk.find(query2).update(update2);
bulk.execute(callback);

在以下文档中,据说db.collection.initializeUnorderedBulkOp()

为集合初始化并返回一个新的 Bulk() 操作构建器。构建器构建了 MongoDB 批量执行的写入操作的无序列表。MongoDB 并行执行列表中的写操作。

https://docs.mongodb.org/v3.0/reference/method/db.collection.initializeUnorderedBulkOp/

于 2016-04-30T07:53:56.487 回答