javascript - 我如何在 mongodb.connect() 之外使用 db.collection()
问题描述
所以问题是我从区块链获取数据并将该数据设置在我的模型中的updateProgress()中,只要在区块链中有任何更改时,我将调用我的 updateProgress() 并在模型中设置数据然后保存它。
但是在这里为了将数据保存到 mongodb,你可以看到我已经将 passdata从 updateProgress() 传递到mongodb.connect()并且我的数据库连接只被调用一次,所以当区块链更改时 updateProgress() 被调用但数据不是得到保存。
那么,我如何在 mongodb.connect() 之外使用 db.collection() 我想在我的 updateProgress() 中使用它,以便每次调用数据时都会在模型中设置保存到数据库
在这里,如果我想在每次必须与数据库创建连接时保存数据
function updateProgress(message){
console.log('updateProgress is running ')
// db save;
const data = new datamodel({
type: message.type,
req_id:message.req_id,
// block_num:message.data.block_num
});
passdata=data;
}
const uri = "mongodb+srv://<databasename>:<password>@cluster0-z2ii6.mongodb.net/test?retryWrites=true&w=majority"
var dbconn= MongoClient.connect(uri,{ useNewUrlParser: true ,useUnifiedTopology: true},function(err, db) {
if(err) {console.log('Error occurred while connecting to MongoDB Atlas...\n',err);}
console.log('Connected...');
dbo=db.db(<databasename>)
dbo.collection('datamodel').insertOne(passdata,(err,passdata)=>{
if(err) throw err
console.log('data is inserted')
})
});
解决方案
推荐阅读
- delphi - TChromium 鼠标点击
- php - 如何使用 Yii2 DetailView 在后端渲染前端图像?
- typescript - 在 TypeScript 中使用 Firebase 实时数据库返回的数据 - Ionic 3
- c# - DrawEllipse:使用 PenAlignment.Inset 破坏抗锯齿
- java - Firebase 无法将检索到的数据保存到 ArrayList
- firebase - Firebase SDK 删除所有“keepSynced”引用
- html - CSS - 如何在一行中制作复选框和标签?
- azure - 使用 GetBlockBlobReference() 时如何避免字符覆盖?
- amazon-s3 - 如何使用 AWSSDK 以编程方式启用 s3 存储桶默认加密?
- php - 为什么我无法在 AngularJS、php 和 MySQL 上的项目上建立会话?