現在、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 .
次の方法を使用して管理者アカウントを作成しました。
use admin
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
これを理解するための助けをいただければ幸いです。