Mongodb如何在Find Promise中插入?

时间:2019-04-19 15:07:40

标签: node.js mongodb

我想将唯一值存储到集合中。我正在使用Node.js和MongoDb。但是,如果我尝试在Find Promise中插入,则会显示“ MongoError:服务器实例池已损坏”

而且我无法在“查找承诺”之外访问集合中的数据。 请帮助我,我真的不明白如何解决这种异步模式。

function addToDBAs( data ){
mongo_client.connect(url, (err, db)=>{
    if(err)
        console.log(err)
    else{
        var dbo = db.db('uniqueSet')
        dbo.createCollection('entities',(err, res)=>{
           if(err)
               console.log(err)
           else{
               console.log("collections created")
               let collection = dbo.collection('entities')
               let dataObjs = []
               collection.find().toArray((err, items) => {

                    data = new Set( data, items )
                    data = Array.from(data)

                    data.map(entity => dataObjs.push({name: entity}))

                    dbo.collection('entities').insertMany(dataObjs)

                console.log(items)
              })
              db.close();
           }
       }) 
    }
})
}

1 个答案:

答案 0 :(得分:1)

您在def caloriefunction(): weight = Profile.weight height = Profile.height age = Profile.age isMale = Profile.gender if isMale == "Male": isMale = True elif isMale == "Female": isMale = False else: print("Error") quit() if isMale: bmr = 66.5 + (13.75 * weight) + (5 * height) - (6.755 * age) else: bmr = 655.1 + (9.6 * weight) + (1.8 * height) - (4.7 * age) bmr = round(bmr) return bmr 完成之前正在呼叫db.close()。您需要使用async / await或Promise等待完成insertMany。然后

应该是这样的(具有异步/等待模式)

insertMany