【问题标题】:How to use Mongodb's insertMany operation to insert multiple documents如何使用mongodb insertMany操作插入多个文档
【发布时间】:2019-12-18 13:57:45
【问题描述】:

我是 Nodejs 的新手,我被分配了一项任务,即使用 node 和 mongodb 将多个文档插入到数据库中的集合中。我正在创建一个用户的表演,然后我得到了该用户的所有朋友。现在对于所有的朋友,我必须在我的数据库中生成一个通知对象。

这是我生成通知的功能-

function generateNotification(performanceId, allFriends) {
    return new Promise((resolve, reject) => {
        var friendUserIds = []
        var performance = []
        var doc = []

        doc = allFriends.Friends.forEach(function (friend) {
            friendUserIds.push(friend.friendUserId)
            performance.push(performanceId)
        })

        notificationObj.insertMany(doc, (err, notifgenerated) => {
            if (err) {
                reject({ "Success": "0", "Message": "Some error occured" })
            } else {
                var message = { "Success": "1", "Message": "Notification(s) generated", "Notif": notifgenerated }
                resolve(message)
            }
        })
    })
}

在这里,我获取所有朋友的用户 ID,然后将其存储在一个数组中。目前只有一个对象被插入,而且没有friendId或performanceId。 现在如何为每个朋友 ID 创建多个对象?

【问题讨论】:

    标签: node.js mongodb promise


    【解决方案1】:

    我的猜测是您的循环运行错误: 您必须按如下方式更改循环逻辑:

    var doc = []
    
    allFriends.Friends.forEach(function (friend) {
    var obj = {};
        obj.friendId = friend.friendUserId
        obj. performanceId = performanceId;
        doc.push(obj)
    })
    
    notificationObj.insertMany(doc, (err, notifgenerated) => {
        if (err) {
            reject({ "Success": "0", "Message": "Some error occured" })
        } else {
            var message = { "Success": "1", "Message": "Notification(s) generated", "Notif": notifgenerated }
            resolve(message)
        }
    })
    

    【讨论】:

    • 非常感谢,真的挽救了一天!
    猜你喜欢
    • 2021-08-23
    • 2013-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-28
    • 1970-01-01
    • 2020-09-05
    • 2013-02-15
    相关资源
    最近更新 更多