2017-04-24 58 views
1

我有一個貓鼬模式定義爲更新通過貓鼬的條目沒有的ObjectId

var mongoose = require('mongoose'); 
var Schema = mongoose.Schema; 

var userSchema = new Schema({ 
    user_id: String, 
    event_organizer: [String], 
}); 

module.exports = mongoose.model('User',userSchema); 

現在,我有一個功能,我想給該用戶的ID添加到事件。當然,這個事件已經存在於數據庫中。

function addUserToEvent(user_id, event_id) { 

} 

如何添加一個event_id到用戶的event_organizer陣列架構中定義?

這可能是該數組已被填充,我需要追加該id,而不是重置它。

回答

1

這是你如何在現有文件中追加一個元素的數組:

Document.update(
    {_id:existing_document_id}, 
    {$push: {array: element}}, 
    {upsert: true} 
) /*upsert true if you want mongoose to create the document in case it does not exist*/ 

對於您的具體情況:

function addUserToEvent(user_id, event_id) { 
    User.update(
       {_id:user_id}, 
       {$push: {event_organizer: event_id}}, 
       {upsert: true} 
    ) 
}