0

我有以下内容,并且我使用它来登录并进行查询,所以我通过了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 中对同一个用户尝试相同的操作,它会通过。

4

1 回答 1

3

尝试交换authdberr

// WRONG
db.authenticate("admin", "1234", function(authdb, err) { ... });
// RIGHT
db.authenticate("admin", "1234", function(err, authdb) { ... });
于 2013-03-02T12:54:32.763 回答