0

現在、nodejs アプリを同じドロップレットで mongodb に接続しようとしています。

私は現在auth = true、IPをバインドアドレスにドロップし、パブリックIPをufwポート接続に許可しました。

これにより、mongo compass からドロップレットにリモート接続できます。

私が抱えている問題はこれです:

これが私の接続文字列だとしましょう:mongodb://user:pass@droplet-ip:27017/DB-NAME

その接続文字列はリモートで正常に機能します。

接続文字列を nodejs アプリに追加すると、次のようにmongodb://user:pass@127.0.0.1:27017/DB-NAME なります。接続されません。

しかしmongodb://user:pass@127.0.0.1:27017/ 、DB-NAMEを指定せずに行うと、 connect .

次の方法を使用して管理者アカウントを作成しました。

  1. use admin
  2. db.createUser({user: "user", pwd: "password", roles: ["root"]});

Iuse adminを実行すると、次のdb.getUsers();結果が得られます。

 users: 
   [ { _id: 'admin.user',
       user: 'user',
       db: 'admin',
       roles: 
        [ { role: 'userAdminAnyDatabase', db: 'admin' },
          { role: 'readWriteAnyDatabase', db: 'admin' } ] } ],
  ok: 1

これを理解するための助けをいただければ幸いです。

4

1 に答える 1