0

へろ!私はこの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);

しかし、うまくいきません。モルフィアでオブジェクトの配列を扱う方法を教えてください。

4

1 に答える 1

1

$フィルターには、ドット表記を使用できる演算子を含める必要はありません。試す:

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();
于 2012-07-25T14:40:41.753 に答える