经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » MongoDB » 查看文章
MongoDB 最近遇到的几个小问题
来源:cnblogs  作者:东山絮柳仔  时间:2019/5/17 8:43:47  对本文有异议

(1)连接数据库时报错

  1. ERROR Topshelf.Hosts.ConsoleRunHost.Run 1
  2. An exception occurred
  3. System.TimeoutException: A timeout occured after 30000ms selecting a server using CompositeServerSelector

错误原因是和转义字符有关。连接字符串使用的URL格式,所以其中的密码中的% 需要转义。

知识扩展:

连接mongo使用URI有特殊字符 '@' 或者":"或者‘%’, 连接会报错,需要进行转义。

解决方法:

把 @ 换成 %40 

把 : 换成 %3A

把 % 换成 %25

 (2)时间字段的范围查询,请注意时间字段的类型。

例如,明看到集合中指定时间段内有数据,但是Count结果还是显示为0。

最早的一笔数据是20170816,但是使用以下语句查询2017-08-14 到 2018-08-18时间段内的文档数据为0.

 

问题在哪儿哪? 

查看发现query.time字段类型是 string.

我们将查询语句的条件格式转换为字段的存储格式,就OK了。

 

所以,在设计集合模式时,要特别注意存储日期时间的字段的类型,建议为Date。另外,查询时也要小心,防止数据异常。

(3)副本集添加节点时报错

错误信息:

  1. {
  2. "ok" : 0,
  3. "errmsg" : "Quorum check failed because not enough voting nodes responded; required 2 but only the following 1 voting nodes responded: 172.XXX.XXX.XXX:27017; the following nodes did not respond affirmatively: 172.XXX.XXX.XX:27017 failed with No route to host",
  4. "code" : 74,
  5. "codeName" : "NodeNotFound"
  6. }

错误原因是:防火墙没关闭 导致

(4)将常规集合设置为固定集合,既有的索引丢失,需要重建。

db.runCommand({"convertToCapped": "集合名字", size: XXXXXX,"max":XXXXX});

设置为固定集合后,原来的索引都丢失了,需要谨记 。

(曾经的一个转换性能测试,及转为固定集合的耗时:1001 W数据,16.8 G 约耗时 6分钟)

(5)mongodb 对字段中有超过 1024 字节的不会建立索引

MongoDB will not create an index on a collection if the index entry for an existing document exceeds the index key limit (1024 bytes). You can however create a hashed index or text index instead:

除了上面的介绍外,还可以修改启动配置参数 ailIndexKeyTooLong。

(6)配置分片的复制集需,在启动的配置文件中需 指定 shardsvr参数。否则,在启动数据库分片时报错。

错误信息如下:

在config文件中,添加 shardsvr=true 即可。

重启服务,再次启动启动分片,执行OK.

 

附注:

MongoDB是一种非关系型数据库(NoSql),很好的实现了面向对象的思想(OO思想),在Mongo DB中 每一条记录都是一个Document对象。Mongo DB最大的优势在于所有的数据持久操作都无需开发人员手动编写SQL语句,直接调用方法就可以轻松的实现CRUD操作。

原文链接:http://www.cnblogs.com/xuliuzai/p/10875620.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号