我有一个定义为的猫鼬架构

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,而不是重置它。

最佳答案

这是将元素添加到现有文档中的数组的方式:

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}
    )
}

关于node.js - 通过不带ObjectId的 Mongoose 更新条目,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43594062/

10-16 13:02