为什么我无法在控制台中查看从数据库中获取的数据
为什么我无法在控制台中查看从数据库中获取的数据
编写了从Mongo db中获取数据并在控制台中打印的代码。但是它没有显示任何东西并停止了运行。
控制台输出 -
(node:85991) DeprecationWarning: 当前的服务器发现和监视引擎已被弃用,并将在将来的版本中删除。要使用新的服务器发现和监视引擎,请在MongoClient构造函数中传递选项{ useUnifiedTopology: true }。
代码
const MongoClient = require('mongodb'); const url = 'mongodb://10.142.206.22:27017/'; const databasename = 'snapp_transactions'; // 数据库名 MongoClient.connect(url).then((client) => { const connect = client.db(databasename); // 连接到集合 const collection = connect .collection('redemptions'); collection.find({}).toArray().then((ans) => { console.log(ans); }); }).catch((err) => { // 打印错误消息 console.log(err.Message); });
问题出现的原因是由于使用了已经被弃用的Server Discovery And Monitoring engine,导致无法在控制台中查看从数据库获取的数据。解决方法是尝试使用mongoose,并使用以下代码进行连接设置:
mongoose.createConnection(uri, { useNewUrlParser: true });
或者使用以下代码进行连接设置:
mongoose.set('useNewUrlParser', true);
另外,可以参考以下链接中的讨论来了解更多信息:Server Discovery And Monitoring engine is deprecated。
如果不想使用mongoose,还有其他选项连接到MongoDB数据库。建议查看MongoDB的文档,了解适用于您的情况的connect()方法的用法。以下是一个示例:
MongoClient.connect(url, { useNewUrlParser: true });
还有一些其他有用的信息可以在以下链接中找到:stackoverflow.com/questions/50448272/…。