3

次のようなデータを含むスキーマ (イベントと呼ばれる) があります。

{ "_id" : ObjectId( "4f8dcb06ee21783d7400003c" ),
  "venue" : ObjectId( "4f8dcb06ee21783d7400003b" ),
  "name" : "Some event",
  "webite: "www.whatever.com",
  "attendees" : [
                    { "_id" : ObjectId( "4f8dfb06ee21783d7134503a" ), "firstName" : "Joe", "lastName" : "Blogs", "emailAddress" : "some@thing1.com" },
                    { "_id" : ObjectId( "4f8dfb06ee21783d7134503b" ), "firstName" : "John", "lastName" : "West", "emailAddress" : "some@thing2.com" }
                    { "_id" : ObjectId( "4f8dfb06ee21783d7134503c" ), "firstName" : "Simon", "lastName" : "Green", "emailAddress" : "some@thing3.com" }
                    { "_id" : ObjectId( "4f8dfb06ee21783d7134503d" ), "firstName" : "Harry", "lastName" : "Smith", "emailAddress" : "some@thing4.com" }
                ],
  "eventType" : "Party"
}

ID 4f8dfb06ee21783d7134503c の出席者オブジェクトを「削除」するにはどうすればよいですか?

基本的に何か....

Event.findOne('attendees._id' : ObjectId('4f8dfb06ee21783d7134503c'), function(err, eventItem){
    //delete the attendee embedded doc with id 4f8dfb06ee21783d7134503c
});
4

1 に答える 1

10

$pullを探していると思います。

db.collection.update({_id: ObjectId( "4f8dcb06ee21783d7400003c" )}, 
                     {$pull: {attendees: {_id: ObjectId( "4f8dfb06ee21783d7134503a" )}}})
于 2012-04-20T13:00:38.150 に答える