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シェルで同じユーザーを使って同じことを試してみると、それが実行されます。

4

1 に答える 1

3

交換authdbしてみてくださいerr

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