我试图获取位于存储在mongodb集合中的文档中的字段的值。我的代码不工作,我不知道为什么。我知道find()返回一个游标对象,我想使用cursor.next()来遍历游标对象。看起来代码中的一点是基于我的调试失败的地方。我为node.js使用mongodb模块来执行这些操作。下面是代码:find()在节点应用mongodb查询非常容易混淆
建立DB /收集信息:
exports.login = function(request, response){
var Db = require('mongodb').Db,
Server = require('mongodb').Server,
assert = require('assert'),
server_config = new Server('localhost', 27017, {auto_reconnect: true, native_parser: true}),
udb = new Db('users', server_config, {
w: -1
}),
uname = request.body.uName,
pw = request.body.uPass;
开幕数据库和查询:
udb.open(function(err, udb) {
assert.equal(null, err);
var collection = udb.collection('profiles');
collection.find({username: uname, password: pw}, function(err, collection){
if(err || !collection){
console.log("login fail");
response.redirect('/');
}
else {
collection.each(function(err, result){
assert.equal(null, err);
console.log("login success");
request.session.loggedIn = true;
request.session.user = uname;
response.redirect('/userDashboard');
});
}
});
udb.close();
});
}
我似乎并没有得到任何错误,页面无限期地“挂起”。
控制台登录事情?确保你得到你的代码的某些部分? –
我进入else子句,然后挂起。 'collection.each(function(err,result){'是问题出现的地方。 – gjw80
循环访问集合?它是否为每个集合运行? –