查询文档,更新它并将其返回给MongoDB
在我的基于MongoDB
3.2的应用程序中,我想执行文档处理。 为了避免在同一文档上重复处理,我想更新它的标志并更新数据库中的这个文档。
可能的方法是:
FindIterable<Document> documents = db.collection.find(query);
。 documents
,更新每个文档并将其存储在新集合中。 db.collection.updateMany();
将新集合推送到数据库db.collection.updateMany();
。 理论上,这种方法应该可行,但我不确定它是否是最佳方案。
我的问题:
MongoDB Java API
有什么办法可以执行以下两个操作:
比较上面提出的方法更优雅的方式?
您可以使用update更新文档:
db.collection.update(
{query},
{update},
{multi:true}
);
它会遍历集合在匹配所有文件query
,并在指定的更新的字段update
。
编辑:
要将一些业务逻辑应用于单个文档,您可以遍历匹配文档,如下所示:
db.collection.find({query}).forEach(
function (doc) {
// your logic business
if (doc.question == "Great Question of Life") {
doc.answer = 42;
}
db.collection.save(doc);
}
)
链接地址: http://www.djcxy.com/p/61955.html
上一篇: Query documents, update it and return it back to MongoDB