node.js - MongoDB 在 NodeJS 上找到返回对象的元素
问题描述
我正在使用,MongoClient
似乎每当我尝试通过查询查找时,我都会得到一个对象作为回报,但它在 mongo 终端中工作得非常好。此数据库初始化用于输入数据。
MongoDB终端:
mongo
use player-db
db.players.find({"id":"1"})
结果: { "_id" : ObjectId("5f3ca631950b2f4b1f157e27"), "id" : "1", "name" : "test" }
现在在server.js:
const url = '{ommited}'
const dbName = 'player-db'
let db;
MongoClient.connect(url, { useNewUrlParser: true, useUnifiedTopology: true }, (err, client) => {
if (err) return console.log(err)
db = client.db(dbName)
console.log(`Connected to Database: \n ${url}/${dbName}`)
})
/** Function that isn't working **/
const GetOne = (collection, id) => {
let test = db.collection("players").find({"id" : "1"});
console.log(test);
}
预期输出:
{ "_id" : ObjectId("5f3ca631950b2f4b1f157e27"), "id" : "1", "name" : "test" }
实际输出:
Cursor {
_readableState: ReadableState {
objectMode: true,
highWaterMark: 16,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: [],
flowing: null,
ended: false,
endEmitted: false,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
errorEmitted: false,
emitClose: true,
autoDestroy: true,
destroyed: false,
errored: false,
closed: false,
closeEmitted: false,
defaultEncoding: 'utf8',
awaitDrainWriters: null,
multiAwaitDrain: false,
readingMore: false,
decoder: null,
encoding: null,
[Symbol(kPaused)]: null
........................... etc.
解决方案
您当前正在获取并记录cursor
.
let test = db.collection("players").find({"id" : "1"}).toArray(function(err, docs) {
console.log(docs)
});
应该显示您的文档。toArray
将光标“转换”为找到的文档数组。它接受一个回调函数,它将在完成时执行。你也可以承诺或异步/等待await db.collection...
推荐阅读
- node.js - 为什么 setInterval 不能用于生产?
- rest - 使用 last.fm API 维护 HTTP 缓存
- java - Arrays asList() accepts instance of class
- python-3.x - how to minimize the massive message delay paho mqtt
- python - Regarding Acuracy is low after Training the new data with old Trained weight file
- batch-file - Why does batch script keep exiting after set /P user prompt?
- node.js - Export Function From Test file and use it in component file?
- sql - 如何连接计算表 - Oracle
- python - 如何指定子正则表达式应优先于相邻的子正则表达式?
- sql - 确定从日志中更新了多少行的方法