日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

mongo connections url string 的问题

發布時間:2025/3/14 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 mongo connections url string 的问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

摘要

driver 連接Mongo DB的url其實很簡單,就是幾個變量拼接成一個url,和關系型數據庫沒什么不同。但是因為mongo有單個instance和replicaSet不同的部署策略,還有mongo 節點有主從之分。所以配置參數容易混淆。另外Mongo NodeJs Driver版本不同,居然也會有坑。這里作個簡單介紹

正文

mongo client 連接到db字符串

格式:

mongodb://username:password@host1,host2:27017/?replicaSet=rs1&write=1&readPreference=secondaryPreferred&connectTimeoutMS=300000

username

當DB enable auth后,需要用戶名和密碼就加上username:password。

replicaSet

單個 mongo db instance
不用填replicaSet

replica set
這邊考慮加上多個host,防止某個host down了。客戶端連接不上。replicaSet 參數看起來很奇怪,為什么DB 是單個instance還是個replicat set,要讓應用程序知道呢。
但是目前mongo就是這么設計的,如果提供的是多個host 列表,那么沒有replicaSet參數也可以,但是如果本身環境是replica set,而你只填寫了一個host,并且沒有replicaSet 參數,那么會將這個Mongo DB當做是一個standalone的db instance,不清楚它是一個集群環境。

host

坑1
這邊的host,填ip,還是hostname。正確的做法就是填寫在rs.status()中看到的members.host的配置。
之前將這個值配置成hostname。client端連接使用ip.在mongo nodejs driver 2.1.21中可以正常工作。但是將版本升級到了2.2.24.居然讀不到了。后來將rs.status()中的host改成ip,才可以訪問

cannot find the primary node

坑2
replica set 有primary 和secondary節點區分,但每個節點都就有其他節點的信息。所以host變量應該填primary node,還是secondary都可以。但是只給定secondary節點時在NodeJs driver的有些版本里面無法正常連接。

write,read

write,read 一致性設置。

cassandra 的consistency level設置是可以在單個query,insert的操作中去設置的。mongo貌似還沒有看到在單個操作層面的一致性設置,只是在這邊的數據庫連接看到有設置

參考

https://docs.mongodb.com/manual/reference/connection-string/

轉載于:https://www.cnblogs.com/stoneFang/p/6715266.html

總結

以上是生活随笔為你收集整理的mongo connections url string 的问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。