摘要

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 的问题相关推荐

  1. DeprecationWarning:current URL string parser is deprecated, and will be removed in a future version.

    DeprecationWarning:current URL string parser is deprecated, and will be removed in a future version. ...

  2. java url hostname_如何从URL字符串中提取主机名和端口?(How to extract hostname and port from URL string?)...

    如何从URL字符串中提取主机名和端口?(How to extract hostname and port from URL string?) 我需要从URL中提取主机名和端口(如果有的话),下面是我的 ...

  3. 关于nodejs DeprecationWarning: current URL string parser is deprecated, and will be removed in a futur

    关于nodejs DeprecationWarning: current URL string parser is deprecated, and will be removed in a futur ...

  4. What's the best way to get rid of get parameters from url string?

    https://stackoverflow.com/questions/27267111/whats-the-best-way-to-get-rid-of-get-parameters-from-ur ...

  5. java querystring_Java URL encoding of query string parameters

    可以将文章内容翻译成中文,广告屏蔽插件会导致该功能失效: 问题: Say I have a URL http://example.com/query?q= and I have a query ent ...

  6. 解决Cannot find module ‘meteor/meteor’ ‘meteor/check’ ‘meteor/mongo’

    meteor 对typescript的支持上存在问题,造成typescript中引入的一些包无法找到. 解决方法: 添加 meteor.d.ts 的定义补充文件到/ 下载位置: wget https: ...

  7. Go 学习笔记(50)— Go 标准库之 net/url(查询转义、查询参数增/删/改/查、解析URL)

    1. URL 概述 import "net/url" url 包解析 URL 并实现了查询的转码.URL 提供了一种定位因特网上任意资源的手段,但这些资源是可以通过各种不同的方案( ...

  8. 【超实用】Angular如何修改当前页面网页浏览器url后面?param1=xxxparam2=xxx参数(多用于通过浏览器地址参数保存用户当前操作状态的需求),实现监听url路由切换、状态变化。

    app.component.html <button (click)="location.go('api/path','?id=1&pageIndex=2&pageSi ...

  9. 用好ASP.NET 2.0的URL映射

    简介: URL映射是ASP.NET 2.0中提供的新特性.URL映射技术帮助我们将一个特定URL映射为另一个URL.为了帮助理解,我们假设你在站点有一个叫Homepage.aspx的页面来访问主页,所 ...

最新文章

  1. Windows下基于python3使用word2vec训练中文维基百科语料(一)
  2. 退休是不可能的,90岁还要继续干!
  3. 上传大数据到SharePoint 2010
  4. (20120731)Android中的各种对话框总结(dialog)
  5. vsftp.conf 配置文件详解
  6. 上海译文公布2019年“新书目录” 名家名译作品结集出版
  7. 使用文本编辑器编写c代码
  8. java 1.13 快照下载_Minecraft我的世界1.13Java版快照18w10c发布
  9. c语言旋转led时钟设计报告,基于POV原理的LED旋转时钟的设计与制作
  10. 阿里巴巴在知乎上又出事了
  11. SPSS 自动线性建模 模型导出方法
  12. 【js】三种JS截取字符串方法
  13. 信息安全-网站安全需求分析与安全保护工程(一)
  14. 如何将彩色证件照调成黑白
  15. 微信小程序,几行代码实现图片瀑布流
  16. PhotoShop彩色图片打印机只有四中颜色操作步骤:
  17. 55个经典开源Windows工具
  18. UiPath中国市场rpa占有率
  19. 计算机主机板有什么作用,运维堡垒主机是什么?有什么作用?
  20. 在VS2008中调用Matlab的m文件(转)

热门文章

  1. TensorFlow 使用例子-LSTM实现序列标注
  2. tf13: 简单聊天机器人
  3. BLE 安全之虫洞攻击
  4. linux查询服务器cpu核数_如何查看linux服务器的cpu数量,内核数,和cpu线程数
  5. pb 应用 迁移 linux_功能化生物炭应用研究取得系列进展
  6. android技巧:apk文件反编译以及签名打包,APKTool 反编译,打包,签名
  7. mybatis mapper.xml 文件共用_MyBatis 缓存原来是这么一回事儿!| 原力计划
  8. linux 指定库名 登录mysql_Linux下指定mysql数据库数据配置主主同步的实例
  9. send函数 获得已发送数据长度_蓝牙BLE开发1--起因与回调函数
  10. ECCV 2020 DETR:《End-to-End Object Detection with Transformers》论文笔记