我有以下内容,我使用它登录并执行查询,所以我通过db.authenticate,但当我执行查询时,我被抛出:
MongoError: unauthorized data ns:data.data lock type:0 client:127.0.0.1] name: 'MongoError' }尽管下面的代码块看起来很可笑,但我想这是javascript唯一的缺陷。
Db.open(function(err, db) {
if(!err) {
db.authenticate("admin", "1234", function(authdb, err) {
if(!err) { //YAY I LOG IN!!!
db.collection('data', function(err, collection) {
collection.findOne({'id':'1'}, function(err, item) {
if(err) { //What?!? I AM logged in
db.close();
console.log(err);
}
} );
} );
}
} ); //Sad face
}
});为什么我可以进行身份验证,但不能运行findOne查询?如果我在mongo shell中使用相同的用户进行同样的尝试,它会通过。
发布于 2013-03-02 20:54:33
尝试交换authdb和err:
// WRONG
db.authenticate("admin", "1234", function(authdb, err) { ... });
// RIGHT
db.authenticate("admin", "1234", function(err, authdb) { ... });https://stackoverflow.com/questions/15174196
复制相似问题