gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 01:56:01 25 4
gpt4 key购买 nike

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

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

这是 Controller 的方法:

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

最佳答案

明白了...需要使用 $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);
}
});
}

};

关于node.js - 如何通过id将新对象添加到mongoDB集合中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47969683/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com