我的mongodb上有一个名为'EloVars'的集合,只有一个文档:
{
"_id": {
"$oid": "5800f3bfdcba0f48d2c58161"
},
"nextPID": "0",
"TotalComprasions": "0"
}
我试图以这种方式获取nextPID的值:
var myDoc = db.collection('EloVars').find();
if(myDoc) {
console.log('What exactly am I getting here:')
console.log(myDoc)
req.body.pid = myDoc.nextPID;
}
当我看到控制台时,我注意到我得到的不是'EloVars'系列......只是长期阅读:
Readable {
pool: null,
server: null,
disconnectHandler:
{ s: { storedOps: [], storeOptions: [Object], topology: [Object] },
length: [Getter] },
bson: {},
ns: 'mydb.EloVars',
cmd:
{ find: 'mydb.EloVars',
limit: 0,
skip: 0,
query: {},
slaveOk: true,
readPreference: { preference: 'primary', tags: undefined, options: [Object] } },
options:
.....
.....
这是什么意思,为什么我会得到它?
答案 0 :(得分:1)
find()
返回cursor
。您必须迭代光标才能获取文档。
var cursor = db.collection('EloVars').find();
cursor.each(function(err, doc) {
console.log(doc);
});
或者您可以将其转换为数组以获取文档。
cursor.toArray(function(err, doc){
console.log(doc);
});
答案 1 :(得分:1)
你为什么这么想?如果没有任何具体原因,你只想获得“nextPID”,你可以使用以下查询:
db.collection('EloVars').findOne({},{_id:0, nextPID:1}).exec(function(err, doc) {
if(doc) {
console.log('What exactly am I getting here:')
console.log(myDoc)
req.body.pid = doc.nextPID;
}
})
P.S。:它只会获得一个nextPID。
得到所有:
db.collection('EloVars').find({},{_id:0, nextPID:1}).exec(function(err, docs) {
if(docs && docs.length){
// your code here
}
})