java - MongoDB根据ObjectID(_id)更新多个文档

标签 java mongodb

我正在将 Java 驱动程序与 MongoDB 结合使用。我有一个集合中的文档 ID 列表。我想更新每个文档中“_id”等于我的列表中文档 ID 之一的单个字段。在下面的示例中,我尝试了这样的操作:

List<ObjectID> list = new ArrayList<ObjectID>();
list.append(new ObjectId("123"));
list.append(new ObjectId("456"));
list.append(new ObjectId("789"));

column.updateMulti(new BasicDBObject("_id", list),new BasicDBObject("$set",new BasicDBObject("field",59)));

我的目的是更新 _id=123、_id=456 和 _id=789 的文档,并将其“field”属性设置为 59。

我的处理方式正确吗?

最佳答案

我相信您需要进行一些更改:

BasicDBList list = new BasicDBList();
list.add( new ObjectId("123") );
// Add the rest...

DBObject inStatement = new BasicDBObject( "$in", list );
column.updateMulti( new BasicDBObject( "_id", inStatement ), new BasicDBObject( "$set", new BasicDBObject( "field", 59 ) );

否则,对于当前的查询,您将对 _id 属性与 _ids 列表进行相等比较 - 实际上并未使用 $in 运算符。

关于java - MongoDB根据ObjectID(_id)更新多个文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17308645/

相关文章:

java - 如何使用类名获取HTML内容?

java - Java 中 StringTokenizer 类与 String.split 方法的性能对比

java - 使用 Selenium WebDriver(又名 Selenium 2.0)鼠标向下滚动 - JAVA

mongodb - 如何使用 JMSSerializerBundle 反序列化 Doctrine 对象?

node.js - 蒙哥错误: self signed certificate in certificate chain

node.js - mongoose 的错误不是 MongoError 的实例?

java - java中斐波那契函数的尾调用优化

Java相当于app.config?

node.js - 从 Mongoose 的子文档 ID 中查找父文档

mongodb - 如何在 MongoDB 中获取以字段开头字母(A 到 Z)的随机文档?