1

私は単純なオブジェクトを持っているとしましょう

{
 "id":"xyz"
 "answers" : [{
   "name" : "Yes",
    }, {
    "name" : "No",
  }]
}

配列から「はい」の回答を削除したい

私はあまり運がなくてもこのようなことを試みています:

import com.mongodb.casbah.MongoCollection

val searchObject = MongoDBObject("id"->"xyz");
getCollection().update(searchObject,$pull( "answers" -> ( "name" -> "Yes")));
4

1 に答える 1

2

以下を見て("name" -> "Yes")、 として宣言する必要があります。MongoDBObject

scala> $pull( "answers" -> ( "name" -> "Yes"))
res10: com.mongodb.casbah.query.Imports.DBObject = { "$pull" : { "answers" : [ "name" , "Yes"]}}

これはあなたが望むものではありません.サブドキュメントをプルしたいのです:

scala> $pull ( "answers" -> MongoDBObject("name" -> "Yes") )
res11: com.mongodb.casbah.query.Imports.DBObject = { "$pull" : { "answers" : { "name" : "Yes"}}}
于 2013-03-04T12:07:50.520 に答える