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

时间:2017-04-05 13:23:35

标签: arrays node.js mongodb mongoose mongoose-schema

我有一个User模型,每个user文档都有name字段Stringfriends字段,其中array为保存此用户为其朋友的其他用户id's的整数。

每当我想创建一个新的用户文档,其中一个id已存在于friends数组中时,我必须执行三个步骤: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);
                        } 
                    }); 
                }
            });

1 个答案:

答案 0 :(得分:1)

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{


                }
            });