2016-10-15 10 views
0

上)(検索を使用して代わりに、特定のコレクションの読み取り可能な{...}を得て、私は1つのドキュメントのみで、私のMongoDBの 'EloVarsを' という名前のコレクションを持っている:私は「MongoDBの

{ 
"_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; 
} 

私はコンソールを見てみると、私は私が得ていることがちょうど長い読み取り可能weired ...「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: 
..... 
..... 

この読める、なぜ私はそれを取得しています何ですか?

答えて

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

なぜこのようにしていますか?そこに特定の理由がないとあなただけの「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 
    } 
}) 
をすべて取得する