無料のMongo Atlasクラスターに接続できなくなったようです。すべてが機能していて、MongoDB Webサイトを調べたときに収集されたデータがあるので、なぜ機能しなくなって接続できなくなったのかわかりません。サイト全体が読み込まれません。
これは私が得ていたエラーです:
{ Error: querySrv ENODATA _mongodb._tcp.blog-cluster-0hb5z.mongodb.net
at QueryReqWrap.onresolve [as oncomplete] (dns.js:197:19)
errno: 'ENODATA',
code: 'ENODATA',
syscall: 'querySrv', Blog/app.js:54:14
hostname: '_mongodb._tcp.blog-cluster-0hb5z.mongodb.net' }
これは、IPアドレスがMongoDB Atlasクラスターのホワイトリストに登録されていない場合に発生することがあります。これが、最初にアカウントをサインアップした自宅のIPアドレスで動作するのに、コーヒーショップのWIFIなどでは動作しない理由です。
したがって、現在のIPアドレスがMongoDBクラスターに追加されていることを確認してください。
私にとって、この問題はスターバックスのコーヒーでのみ発生していて、ランダムなものでした。OpenDNSは私にとってもGoogle DNSや他の試みもうまくいきませんでした。以前は、mongodb + srv文字列形式を使用して、MongoidとRubyをmongoid.yml構成ファイルで使用して、 "uri"内に接続していました。
この問題を修正するには、必ずこのリンクで説明されている構成に従ってください https://docs.atlas.mongodb.com/driver-connection/ (Mongoid Example)
production:
# Configure available database clients. (required)
clients:
# Defines the default client. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: 'myDatabaseName'
# Provides the hosts the default client can connect to. Must be an array
# of Host:port pairs. (required)
hosts:
- mycluster0-shard-00-00.mongodb.net:27017
- mycluster0-shard-00-01.mongodb.net:27017
- mycluster0-shard-00-02.mongodb.net:27017
options:
# The name of the user for authentication.
user: kay
# The password of the user for authentication.
password: myRealPassword
# The database or source to authenticate the user against. If the database
# specified above is not admin, admin MUST be specified here.
auth_source: admin
# All Atlas servers use SSL. (default: false)
ssl: true
コーヒーショップでMongoDB Atlasにアクセスしようとしたときに、この問題が発生しました。以前は完全に機能していましたが、突然この正確なエラーが発生しました。詳細はわかりませんが、クラスタを修正して標準の接続文字列で接続することで解決できました。その長い接続文字列をコピーして貼り付け、パスワードを入力して設定した後、うまくいきました。お役に立てば幸いです。