2013-08-31 2 views
0

Полностью новый в Монго, я проверял примеры часов, пытаясь проверить, если пользователь существует в этой коллекции:Как получить информацию о пользователе из MongoDB в node.js

{ "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 

Он даже, кажется, не собирается в функции findOne(), внешней по отношению к функции Findon() она не сможет в любом случае.

+0

Привет, вам не хватает завершения вызова Mongo.connect? > "});" –

+0

Что вы получаете в консоли, когда вы вызываете console.log на имя? –

+0

Да, он отлично работает в консоли. Я переработаю код выше, чтобы сделать его более четким. – ChrisAdmin

ответ

0

Итак, вот изменения перед тем, как он начал работать, удалил var Doc = и закрыл db только после того, как функция в findOne() запущена, иначе она закрывает БД до результата.

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 
collection.findOne({name : name}, function(err,doc){ 
    if(err) throw err; 
    if(doc) 
     console.log("Found: "+name+", pass="+doc.pass); 
    else 
     console.log("Not found: "+name); 
    db.close(); 
}); 

});

Смежные вопросы