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

Posted

技术标签:

【中文标题】Node.js Mongoose 如何保存新文档并向数组字段添加新值【英文标题】:Node.js Mongoose how to save new document and add new value to array field 【发布时间】:2017-08-31 03:32:57 【问题描述】:

我有一个User 模型,每个user 文档都有name 字段,它是Stringfriends 字段,它是一个整数的array,它包含该用户的其他用户的id's是朋友。

每当我想在朋友数组中创建一个具有一个 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);
                         
                    ); 
                
            );

【问题讨论】:

为什么在用户保存后使用更新? 【参考方案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


                
            );

【讨论】:

以上是关于Node.js Mongoose 如何保存新文档并向数组字段添加新值的主要内容,如果未能解决你的问题,请参考以下文章

如何在 MongoDB 中对聚合查询结果进行分页并获得总文档数(Node.js + Mongoose)?

使用node js mongoose保存后如何返回json数据

无法在 POST (mongoose/express) 上创建新文档

如何在 Node.js 中使用 mongoose 将大数组保存到 MongoDB

如何使用 Node.js Mongoose 删除文档?

如何使用 Node.js Mongoose 删除文档?