嵌入式阵列文档中的Morphia Mongodb更新失败

时间:2018-10-02 17:50:45

标签: mongodb morphia

我是Morphia的新手,正在尝试更新嵌入式文档中的字段。这是当前的结构

class A {

    List<B> BList;
}

class B {
    String field;
}

所以我的结构在MongoDb中如下所示:

{

    "_id" : ObjectId("5bab8be0032945f6e9f91d98"),
    "className" : "com.abc.A",
    "BList" : [ 
        {
            "B" : {
                "field" : "text"
                }
        }
}

现在,我要为所有匹配的查询更新B.field。
我创建了以下UpdateOperations

 UpdateOperations updateOps = datastore.createUpdateOperations(A.class);

我的过滤器查询很好,说过滤器返回了A中的所有元素。

 updateOps.set("Blist.$[].B.field", "newtext");

当调试器到达此语句时,它针对A`显示org.mongodb.morphia.query.ValidationException: Could not resolve path'BList。$ []。B.field'

我什至添加了disableValidation,但这无法运行。

但是,如果我省略位置运算符,它可以正常工作,但是在runnig datastore.update()上运行时它将失败。 抛出此错误。

 Write failed with error code 28 and error message 'Cannot create field B.

有人可以建议在吗啡的第二级进行此更新吗?

0 个答案:

没有答案