mongo はまったく初めてで、例を何時間もチェックしてきました。このコレクションにユーザーが存在するかどうかを確認しようとしています:
{ "name" : "chrispy", "pass" : "xxxx", "_id" : ObjectId("5221b29b69f9e9b11a000001") }
しかし、名前を一致させて結果を得ることができません。私は数多くの例を試しましたが、うまくいきませんでした。
コンソールでうまく動作します:
mongo main
> db.users.findOne({name : 'chrispy'})
{
"name" : "chrispy",
"pass" : "xxxx",
"_id" : ObjectId("5221b29b69f9e9b11a000001")
}
>
名前が一致したら、パスワードを一致させます。しかし、ユーザー名と一致することさえできません。ヘルプ = 1000 ありがとう!
var name = 'chrispy';
var pass = '';
console.log("About to check for name and pw");
Mongo.connect('mongodb://127.0.0.1:27017/main', function(err, db) {
if(err) throw err;
var collection = db.collection('users');
// does user exist
var doc = collection.findOne({name : name}, function(err,doc){
if(err) throw err;
if(doc)
console.log("1 Found: "+name+", pass="+doc.pass);
else
console.log("1 Not found: "+name);
});
if(doc)
console.log("2 Found: "+name+", pass="+doc.pass);
else
console.log("2 Not found: "+name);
db.close();
});
コンソール出力:
About to check for name and pw
2 Not found: chrispy
とにかく失敗するfindOn()関数の外部で、findOne()関数に入っていないようです。