2017-02-08 10 views
1

これまで私はmongodbの単純なfind()を使用しようとすると、未定義を返します。Mongodb find()return undefined

var MongoClient = require('mongodb').MongoClient; 
var url = 'mongodb://localhost:27017/local'; 

MongoClient.connect(url, function (err, db) { 

    db.collection('pokemon').find({ $search: { $text: 'Pikachu' } }).toArray(function(err, data){ console.log(data) }) 

}); 

EDIT:

は、私はすべてのコードの前に

db.collection('pokemon').createIndex({Name: 'text'}) 

を置くことによって、インデックスを作成したことはありませんが判明します。

答えて

3

まず第一に、あなたが持っているすべての時間:

function(err, data){ console.log(data) } 

あなたはエラーをチェックする必要があります:

function (err, data) { 
    if (err) { 
    console.log('Error:', err); 
    } else { 
    console.log('Data:', data); 
    } 
} 

あなたはおそらく何が起こっているかが表示されます。

これは、データベース接続自体についても同様である - の代わりに:

MongoClient.connect(url, function (err, db) { 
    // use db here 
}); 

にエラー処理する必要があり:あなたはエラーが続いていることに驚いてはいけない処理しない場合は

MongoClient.connect(url, function (err, db) { 
    if (err) { 
    // handle errors 
    } else { 
    // use db here 
    } 
}); 

をなぜあなたが価値を得ていないのか分かりません。

+0

私はcreatIndexを忘れてしまった –