2012-04-20 5 views
2

У меня есть схемы (так называемый Event) с данными, выглядит следующим образом:Mongoose/MongoDB - Удалить встроенный документ

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

Как я могу «удалить» Присутствующие объект с идентификатором 4f8dfb06ee21783d7134503c?

В основном что-то вроде ....

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

Знаешь, это может быть полезным. –

+0

Какой бит не действителен? – Alex

+1

Попробуйте вставить объект из сообщения. –

ответ

8

Я думаю, что вы ищете $pull.

db.collection.update({_id: ObjectId("4f8dcb06ee21783d7400003c")}, 
        {$pull: {attendees: {_id: ObjectId("4f8dfb06ee21783d7134503a")}}}) 
Смежные вопросы