MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да се свържете правилно с клъстер Atlas M0 (Free Tier) чрез драйвер на Java?

Реших го! И така, какво направих:

  1. Опитах се само да се свържа с клъстер от нива чрез driver3.6 и написа

    mongodb+srv://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true

Винаги получавам грешка: Connection strings must start with 'mongodb://' .

  1. Добре, изтрих фрагмента +srv и написа по същия начин

    mongodb://user:@cluster0-ox90k.mongodb.net/test?retryWrites=true

и да получите отново грешката:

com.mongodb.MongoTimeoutException: Timed out after 30000 ms while waiting for a server that matches ReadPreferenceServerSelector{readPreference=primary}. Client view of cluster state is {type=UNKNOWN, servers=[{address=cluster0-ox90k.mongodb.net:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketException: cluster0-ox90k.mongodb.net}, caused by {java.net.UnknownHostException: cluster0-ox90k.mongodb.net}}]

И така, написах чрез driver3.4 или по-стара версия харесвам

mongodb://user:<PASSWORD>@cluster0-shard-00-00-ox90k.mongodb.net:27017,cluster0-shard-00-01-ox90k.mongodb.net:27017,cluster0-shard-00-02-ox90k.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin&retryWrites=true

и накрая се реши.

Забележка:Можете да получите този низ за връзка от конзолата за управление на Atlas, като зададете своя Java драйвер на „3.4 или по-нова версия“. Това ще ви помогне да избегнете необходимостта да измисляте сами низа за връзка.

Актуализирано: ако искате да използвате драйвери 3.7+ , трябва да пишете вместо формат връзка (и за да избегнете проблемите ми по-горе)

MongoClientURI uri = new MongoClientURI("mongodb+srv://admin:[email protected]/test?retryWrites=true");
MongoClient mongoClient = new MongoClient(uri);

друг вариант, използващ MongoClients.create() (от изданието 3.7) и както е споменато тук:

   MongoClient mongoClient = MongoClients.create("mongodb+srv://admin:[email protected]/test?retryWrites=true");

Забележка: паролата трябва да се пише не като mongodb://user:<mypassword>@... ,

само във формат mongodb://user:[email protected]

без скоби <> .



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Mongodb v4.0 Transaction, MongoError:Номера на транзакции са разрешени само за член на набор от реплика или mongos

  2. Mongo DB отношения между обекти

  3. Грешка при свързване с Mongodb вътре в контейнера за докер

  4. Заявете MongoDB с израз на регулярен израз срещу ObjectId

  5. Как да осигурим уникален елемент в масив, базиран на конкретни полета - mongoDB?