喂!
我有这个JSON结构:
{
"author" : "some author"
"comment" : [{
"text" : "some text",
"date" : "some date",
}, {
"text" : "some text",
"date" : "some date",
}]
}
例如,我需要检查所有评论日期。我写了这段代码:
UpdateOperations<Blog> ops;
Query<Blog> updateQuery = ds.createQuery(Blog.class).disableValidation().filter("comment.$.date", "some date").enableValidation();
ops = ds.createUpdateOperations(Blog.class).disableValidation().set("comment.$.text", "new text").enableValidation();
ds.update(updateQuery, ops);
但这是行不通的。您能告诉我如何处理吗啡对象数组吗?
最佳答案
过滤器不应具有$
运算符,而只能使用点表示法。尝试:
UpdateOperations<Blog> ops;
Query<Blog> updateQuery = ds.createQuery(Blog.class).field("comment.date").equal("some date");
ops = ds.createUpdateOperations(Blog.class).disableValidation().set("comment.$.text", "new text").enableValidation();
关于java - 使用Morphia更新对象数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11651893/