如何在进行更新后指示Mongo返回受影响的行? 目前它返回
{ "serverUsed" : "localhost:27017" , "ok" : 1 , "n" : 12 , "updatedExisting" : true}
这意味着更新了12条记录,但我想知道它们是哪条记录。
一种解决方法是执行两个查询,首先查找_id,然后再实际更新它们,但这还不够好。
非常感谢
R上。
答案 0 :(得分:1)
使用 findAndModify()
API。例如,按照此博客文章 MongoDB findAndModify() examples using Mongo Shell and Java Driver 的指南,您可以将更新查询编写为:
// findAndModify operation. Update colour to blue for cars having speed < 45
DBObject query = new BasicDBObject("speed",
new BasicDBObject("$lt", 45));
DBObject update = new BasicDBObject();
update.put("$set", new BasicDBObject("color", "Blue"));
DBCursor cursor = coll.find();
try {
while (cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
coll.findAndModify(query, update);