2016-05-02 11 views
0

私はノードを新しくしました& mongodb、 mongoコレクションからデータを取得する必要がありますが、db.collection( 'mycoll' ).fine()メソッドは、多くのデータを戻しますが、私の必要なデータはコルレクションのレコードです。ここ は私のサーバー側のロジックです:mongodb find()メソッドから多くのデータを取得しますが、必要なデータは何もありません。

var url = 'mongodb://localhost:27017/wdk'; 
    var resultArray = {}; 
    mongodb.connect(url, function (err, db) { 
     var cursor = db.collection('projects').find({username:"new"}); 
      cursor.forEach(function (docs,err) { 
       resultArray.push(docs); 
      }, function() { 
       db.close(); 
       res.render('index',{ 
        items:resultArray, 
        name: profile_name, 
        email: profile_email 
       }); 
      }); 
      console.log(cursor); 

そして、ここではそれがコンソールに返すものです:

Readable { 
    pool: null, 
    server: null, 
    disconnectHandler: 
    { s: { storedOps: [], storeOptions: [Object], topology: [Object] }, 
    length: [Getter] }, 
    bson: {}, 
    ns: 'wdk.projects', 
    cmd: 
    { find: 'wdk.projects', 
    limit: 0, 
    skip: 0, 
    query: { pusername: 'extra' }, 
    slaveOk: true, 
    readPreference: { preference: 'primary', tags: undefined, options: undefined } }, 
    options: 
    { skip: 0, 
    limit: 0, 
    raw: undefined, 
    hint: null, 
    timeout: undefined, 
    slaveOk: true, 
    readPreference: { preference: 'primary', tags: undefined, options: undefined }, 
    db: 
     EventEmitter { 
     domain: null, 
     _events: {}, 
     _eventsCount: 0, 
     _maxListeners: undefined, 
     s: [Object], 
     serverConfig: [Getter], 
     bufferMaxEntries: [Getter], 
     databaseName: [Getter] }, 
    promiseLibrary: [Function: Promise], 
    disconnectHandler: { s: [Object], length: [Getter] } }, 
    topology: 
    EventEmitter { 
    domain: null, 
    _events: 
     { reconnect: [Function], 
     timeout: [Object], 
     error: [Object], 
     close: [Function], 
     destroy: [Object], 
     serverDescriptionChanged: [Function], 
     serverHeartbeatStarted: [Function], 
     serverHeartbeatSucceeded: [Function], 
     serverHearbeatFailed: [Function], 
     serverOpening: [Function], 
     serverClosed: [Function], 
     topologyOpening: [Function], 
     topologyClosed: [Function], 
     topologyDescriptionChanged: [Function] }, 
    _eventsCount: 14, 
    _maxListeners: undefined, 
    s: 
     { options: [Object], 
     callbacks: [Object], 
     logger: [Object], 
     state: 'connected', 
     reconnect: true, 
     reconnectTries: 30, 
     reconnectInterval: 1000, 
     emitError: true, 
     currentReconnectRetry: 30, 
     ismaster: [Object], 
     readPreferenceStrategies: undefined, 
     authProviders: [Object], 
     id: 3, 
     topologyId: -1, 
     tag: undefined, 
     disconnectHandler: [Object], 
     monitoring: false, 
     haInterval: 10000, 
     wireProtocolHandler: [Object], 
     Cursor: [Object], 
     bsonInstance: {}, 
     inquireServerStateTimeout: null, 
     bson: {}, 
     pool: [Object], 
     isMasterLatencyMS: 1, 
     inTopology: false, 
     serverDetails: [Object], 
     serverDescription: null, 
     topologyDescription: null }, 
    hashedName: '1309e35791f04f1f4fc35d5e683e81d350dd04f4', 
    name: [Getter], 
    bson: [Getter], 
    wireProtocolHandler: [Getter], 
    id: [Getter] }, 
    cursorState: 
    { cursorId: null, 
    cmd: 
     { find: 'wdk.projects', 
     limit: 0, 
     skip: 0, 
     query: [Object], 
     slaveOk: true, 
     readPreference: [Object] }, 
    documents: [], 
    cursorIndex: 0, 
    dead: false, 
    killed: false, 
    init: false, 
    notified: false, 
    limit: 0, 
    skip: 0, 
    batchSize: 1000, 
    currentLimit: 0, 
    transforms: undefined }, 
    callbacks: null, 
    logger: { className: 'Cursor' }, 
    _readableState: 
    ReadableState { 
    objectMode: true, 
    highWaterMark: 16, 
    buffer: [], 
    length: 0, 
    pipes: null, 
    pipesCount: 0, 
    flowing: null, 
    ended: false, 
    endEmitted: false, 
    reading: false, 
    sync: true, 
    needReadable: false, 
    emittedReadable: false, 
    readableListening: false, 
    defaultEncoding: 'utf8', 
    ranOut: false, 
    awaitDrain: 0, 
    readingMore: false, 
    decoder: null, 
    encoding: null }, 
    readable: true, 
    domain: null, 
    _events: {}, 
    _eventsCount: 0, 
    _maxListeners: undefined, 
    s: 
    { numberOfRetries: 5, 
    tailableRetryInterval: 500, 
    currentNumberOfRetries: 5, 
    state: 0, 
    streamOptions: {}, 
    bson: {}, 
    ns: 'wdk.projects', 
    cmd: 
     { find: 'wdk.projects', 
     limit: 0, 
     skip: 0, 
     query: [Object], 
     slaveOk: true, 
     readPreference: [Object] }, 
    options: 
     { skip: 0, 
     limit: 0, 
     raw: undefined, 
     hint: null, 
     timeout: undefined, 
     slaveOk: true, 
     readPreference: [Object], 
     db: [Object], 
     promiseLibrary: [Function: Promise], 
     disconnectHandler: [Object] }, 
    topology: 
     EventEmitter { 
     domain: null, 
     _events: [Object], 
     _eventsCount: 14, 
     _maxListeners: undefined, 
     s: [Object], 
     hashedName: '1309e35791f04f1f4fc35d5e683e81d350dd04f4', 
     name: [Getter], 
     bson: [Getter], 
     wireProtocolHandler: [Getter], 
     id: [Getter] }, 
    topologyOptions: 
     { socketOptions: {}, 
     auto_reconnect: true, 
     host: 'localhost', 
     port: 27017, 
     cursorFactory: [Object], 
     reconnect: true, 
     emitError: true, 
     size: 5, 
     disconnectHandler: [Object], 
    { find: 'wdk.projects', 
    limit: 0, 
    skip: 0, 
    query: { pusername: 'extra' }, 
    slaveOk: true, 
    readPreference: { preference: 'primary', tags: undefined, options: undefined } }, 
    options: 
    { skip: 0, 
    limit: 0, 
    raw: undefined, 
    hint: null, 
    timeout: undefined, 
    slaveOk: true, 
    readPreference: { preference: 'primary', tags: undefined, options: undefined }, 
    db: 
     EventEmitter { 
     domain: null, 
     _events: {}, 
     _eventsCount: 0, 
     _maxListeners: undefined, 
     s: [Object], 
     serverConfig: [Getter], 
     bufferMaxEntries: [Getter], 
     databaseName: [Getter] }, 
    promiseLibrary: [Function: Promise], 
    disconnectHandler: { s: [Object], length: [Getter] } }, 
    topology: 
    EventEmitter { 
    domain: null, 
    _events: 
     { reconnect: [Function], 
     timeout: [Object], 
     error: [Object], 
     close: [Function], 
     destroy: [Object], 
     serverDescriptionChanged: [Function], 
     serverHeartbeatStarted: [Function], 
     serverHeartbeatSucceeded: [Function], 
     serverHearbeatFailed: [Function], 
     serverOpening: [Function], 
     serverClosed: [Function], 
     topologyOpening: [Function], 
     topologyClosed: [Function], 
     topologyDescriptionChanged: [Function] }, 
    _eventsCount: 14, 
    _maxListeners: undefined, 
    s: 
     { options: [Object], 
     callbacks: [Object], 
     logger: [Object], 
     state: 'connected', 
     reconnect: true, 
     reconnectTries: 30, 
     reconnectInterval: 1000, 
     emitError: true, 
     currentReconnectRetry: 30, 
     ismaster: [Object], 
     readPreferenceStrategies: undefined, 
     authProviders: [Object], 
     id: 3, 
     topologyId: -1, 
     tag: undefined, 
     disconnectHandler: [Object], 
     monitoring: false, 
     haInterval: 10000, 
     wireProtocolHandler: [Object], 
     Cursor: [Object], 
     bsonInstance: {}, 
     inquireServerStateTimeout: null, 
     bson: {}, 
     pool: [Object], 
     isMasterLatencyMS: 1, 
     inTopology: false, 
     serverDetails: [Object], 
     serverDescription: null, 
     topologyDescription: null }, 
    hashedName: '1309e35791f04f1f4fc35d5e683e81d350dd04f4', 
    name: [Getter], 
    bson: [Getter], 
    wireProtocolHandler: [Getter], 
    id: [Getter] }, 
    cursorState: 
    { cursorId: null, 
    cmd: 
     { find: 'wdk.projects', 
     limit: 0, 
     skip: 0, 
     query: [Object], 
     slaveOk: true, 
     readPreference: [Object] }, 
    documents: [], 
    cursorIndex: 0, 
    dead: false, 
    killed: false, 
    init: false, 
    notified: false, 
    limit: 0, 
    skip: 0, 
    batchSize: 1000, 
    currentLimit: 0, 
    transforms: undefined }, 
    callbacks: null, 
    logger: { className: 'Cursor' }, 
    _readableState: 
    ReadableState { 
    objectMode: true, 
    highWaterMark: 16, 
    buffer: [], 
    length: 0, 
    pipes: null, 
    pipesCount: 0, 
    flowing: null, 
    ended: false, 
    endEmitted: false, 
    reading: false, 
    sync: true, 
    needReadable: false, 
    emittedReadable: false, 
    readableListening: false, 
    defaultEncoding: 'utf8', 
    ranOut: false, 
    awaitDrain: 0, 
    readingMore: false, 
    decoder: null, 
    encoding: null }, 
    readable: true, 
    domain: null, 
    _events: {}, 
    _eventsCount: 0, 
    _maxListeners: undefined, 
    s: 
    { numberOfRetries: 5, 
    tailableRetryInterval: 500, 
    currentNumberOfRetries: 5, 
    state: 0, 
    streamOptions: {}, 
    bson: {}, 
    ns: 'wdk.projects', 
    cmd: 
     { find: 'wdk.projects', 
     limit: 0, 
     skip: 0, 
     query: [Object], 
     slaveOk: true, 
     readPreference: [Object] }, 
    options: 
     { skip: 0, 
     limit: 0, 
     raw: undefined, 
     hint: null, 
     timeout: undefined, 
     slaveOk: true, 
     readPreference: [Object], 
     db: [Object], 
     promiseLibrary: [Function: Promise], 
     disconnectHandler: [Object] }, 
    topology: 
     EventEmitter { 
     domain: null, 
     _events: [Object], 
     _eventsCount: 14, 
     _maxListeners: undefined, 
     s: [Object], 
     hashedName: '1309e35791f04f1f4fc35d5e683e81d350dd04f4', 
     name: [Getter], 
     bson: [Getter], 
     wireProtocolHandler: [Getter], 
     messageHandler: [Function], 
     wireProtocolHandler: [Object] }, 
    promiseLibrary: [Function: Promise], 
    currentDoc: null }, 
    ignoreUndefined: false, 
    maxBsonSize: 16777216, 
    checkKeys: false, 
    batchSize: -1, 
    tailable: false, 
    slaveOk: false, 
    oplogReplay: false, 
    noCursorTimeout: false, 
    awaitData: false, 
    exhaust: false, 
    partial: false, 
    documentsReturnedIn: 'firstBatch' } } 

そして、ここでは、私はMongoのコンソール上で照会するとき私が得る何です: enter image description here

答えて

0

console.log()は結果リストではなくcursorオブジェクトを記録しています。そのためには最終コールバックにresultArrayを記録する必要があります(エラーをチェックするのに最適な場所です)。

+0

ありがとうございますrobertklep!それは今働いている! –

+0

hi robertklep!私は別のエラーで立ち往生しています、私はルートにリクエストを取得してこのデータを取得していますが、リフレッシュすると表示されるデータが繰り返されます。どうすればこのエラーを解決できますか? –

+0

@AbdulRehmanおそらく別の質問を作成する必要があります:-) – robertklep

関連する問題