在我基于MongoDB3.2的应用程序中,我想执行文档处理。为了避免对同一文档的重复处理,我想更新它的标志并在数据库中更新此文档。
可能的方法是:
1.查询数据:FindIterable<Document> documents = db.collection.find(query);
.
1.对这些文档执行一些业务逻辑。
1.迭代documents
,更新每个文档并将其存储在新集合中。
1.使用db.collection.updateMany();
将新集合推入数据库。
从理论上讲,这种方法应该可行,但我不确定这是否是最佳方案。
在MongoDB Java API中是否有任何方法可以执行以下两个操作:
1.查询文档(从DB中获取文档并传递给单独的方法);
1.将其更新后存入数据库;
以一种比上述方法更优雅的方式?
1条答案
按热度按时间xesrikrc1#
您可以使用update就地更新文件:
它会逐一查看集合中符合
query
的所有文件,以及update
中指定的更新字段。编辑:
要将 * 某些业务逻辑 * 应用于单个文档,您可以按如下方式遍历匹配的文档: