如何通过id将新对象添加到mongoDB集合中?

问题描述 投票:1回答:1

我有一个名为Users的集合,用于存储用户的消息和信息。我想通过它的id将新对象添加到现有集合中。

我收到一个错误'TypeError:user.insert不是一个函数' - 我想我错过了一些东西....

这是控制器的方法:

UserDataController.prototype.sendMsg = function (userID, messages_data, cb) {

if (userID) { 

    user.findOne({_id: userID},function(err, result){ //Object id=59e5e542a5ba05056c57d847

        // insert to the collection with the object id

        user.insert({_id: userID} ,messages_data,function(err, result){
            if(err) return cb(err);
            return cb(null, result);
        });
    });

  }

 };

这是我希望获得的结果:

"sentmessages" : [{
    "message_body" : "whatsup", // new object
    "message_subject" : "whatsup",
    "message_date" : "20/01/2017"
  },
  {
   "message_body" : "whatsup", // new object
    "message_subject" : "whatsup",
    "message_date" : "20/01/2017"
  }]

架构看起来像这样:

var sentmessages = new schema({
   message_date: String,
   message_subject : String,
   message_body : String,

});

var UserSchema = new schema({
  firstname: String,
  lastname: String,
  email: String,
  sentmessages :[sentmessages] // here is were i want to add new objects
});
node.js mongodb
1个回答
0
投票

得到它...需要使用$ push

UserDataController.prototype.sendMsg = function (userID, messages_data, cb) 
{

if (userID) {
    var message_fixesd_data = messages_data.sent_messages[0];
        user.update({_id: userID},
            { $push: { sent_messages: {
                message_body : message_fixesd_data.message_body,
                message_subject: message_fixesd_data.message_subject,
                message_date : message_fixesd_data.message_date
             }
        }

            }, function (err, result) {
            if(err)
            {
                return cb(err);
            }
            else
            {

                return cb(true, 'File was save successfully', result);
            }
        });
   }

};
© www.soinside.com 2019 - 2024. All rights reserved.