0

次のような構造があり、配列から 1 つの項目を削除しようとしています。私はこれまでのところこれを理解することができませんでした。助言がありますか?

{
   "_id" : "4fd4466c03644ec6ec6d5fe1",
   "fruit" : [

         { "id" : "4fd4466c03644ec6ec6d5fdf", "name" : "avocado", "quantity" : "2"  },
         { "id" : "4fd4466c03644ec6ec6d5fe0", "name" : "apple",   "quantity" : "34" },

   ]
}

「フルーツ」というドキュメントが埋め込まれた「カート」のモデルがあります。はい、それらは偽の例ですが、私が取り組んでいるものよりも果物のカートを説明する方が簡単です. 私が電話で得た最も遠いところ。

MorphiaQuery q = Cart.q().filter("_id",cartid);
Cart.o().removeAll("fruit", ?????).update(q);

ここでのガイダンスは素晴らしいでしょう。

4

1 に答える 1

1

まず、1つの果物を取り除くカートを見つけます。

Cart cart = Cart.findById(cartid);

次に果物を見つけて取り除きます。

for (Fruit f: cart.fruit) {
    if (f.name.equals("apple")) {
        cart.fruit.remove(f);
        cart.save();
        break;
    }
}
于 2012-06-10T12:18:12.903 に答える