Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays Node.js Mongoose如何保存新文档并向数组字段添加新值_Arrays_Node.js_Mongodb_Mongoose_Mongoose Schema - Fatal编程技术网

Arrays Node.js Mongoose如何保存新文档并向数组字段添加新值

Arrays Node.js Mongoose如何保存新文档并向数组字段添加新值,arrays,node.js,mongodb,mongoose,mongoose-schema,Arrays,Node.js,Mongodb,Mongoose,Mongoose Schema,我有一个用户模型,每个用户文档都有名称字段,它是字符串和朋友字段,它是一个整数数组,其中包含该用户朋友的其他用户的id 每当我想在friends数组中创建一个具有一个id的新用户文档时,我必须执行三个步骤:1。创建具有特定名称的新用户;2.保存此用户;3.通过向数组中添加新的好友id来更新此用户的好友字段 我想知道是否有另一种更有效的方法可以达到同样的效果。以下是我目前的代码: var User = mongoose.model('User',{ friends: {

我有一个
用户
模型,每个
用户
文档都有
名称
字段,它是
字符串
朋友
字段,它是一个整数数组,其中包含该用户朋友的其他用户的
id

每当我想在friends数组中创建一个具有一个id的新用户文档时,我必须执行三个步骤:1。创建具有特定名称的新用户;2.保存此用户;3.通过向数组中添加新的好友id来更新此用户的好友字段

我想知道是否有另一种更有效的方法可以达到同样的效果。以下是我目前的代码:

var User = mongoose.model('User',{
    friends:  {
        type: [Number],
        required: false      
    },
    name: String
});

            //cretae new user document
            var user = new User ({
                name: name
            });

            user.save(function(err){
                if(err){
                    console.log("something went wrog, read below");
                    console.log(err);
                }else{
                    User.update({'name': name}, {
                        $addToSet: { 'friends': newFriendId}
                    },function(err, count) {
                        if(err){
                            console.log(err);
                        }else{
                            console.log(count);
                        } 
                    }); 
                }
            });

为什么在用户保存之后才使用更新?
var User = mongoose.model('User',{
    friends:  {
        type: [Number],
        required: false      
    },
    name: String
});

            //cretae new user document
            var user = new User ({
                name: name,
                friends : [newFriendId] 
            });

            user.save(function(err){
                if(err){
                    console.log("something went wrog, read below");
                    console.log(err);
                }else{


                }
            });