有人可以看一下这个问题,因为我们无法将数组插入字段“ d”,如下所示
我们正在查询文档以更新ps数组中的任何字段,并在d字段中插入一个数组,如下所示。
public void updateTesting() {
Bson where = new Document().append("_id", 123456789012345L).append("session.ps.apn","abcdef");
Bson update1=new Document().append("th", "value3");
Bson update = new Document()
.append("session.ps.$.apn", "klo");
Bson set = new Document().append("$set", update).append("$addToSet", update1);
List<Bson> list=new ArrayList<>();
list.add(set);
tim.findOneAndUpdate(where , set);
}
在上面的测试中,我们尝试在'th'字段中插入对象,该对象成功,但是对于'd'字段则不可能。请在此告诉我们我们做错了什么。请评论任何所需信息。预先感谢。
您必须使用arrayFilters更新特定的数组元素(有条件)。 Java中的数组过滤器是通过FindOneAndUpdateOptions
对象定义的。