我試圖獲取位於存儲在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
循環訪問集合?它是否爲每個集合運行? –