Document filter = new Document("attribute", new Document("$regex", "XYZ$"));
Document update = new Document("$set", new Document("attribute",
new Document("$replaceOne", new Document("input", "$attribute")
.append("find", "XYZ")
.append("replacement", "ABC"))));
var result = coll.updateMany(filter, update);
System.out.println(result.getModifiedCount());
上面是将属性设置为replaceOne对象而不是值。请告诉我我的错误。
1条答案
按热度按时间zbdgwd5y1#
问题是你正在执行this query,其中
update
对象无法识别$replaceOne
,因此它被插入到对象中。Yo需要this query,其中
update
对象是一个聚合管道。除了添加[]
之外,几乎相同。所以我没有测试过,但你的
update
值可以是这样的: