mongodb

MongoDB一些常见及生僻的问题分析

下面来看Russell对MongoDB一些常见及生僻的问题做出分析:

32位 vs 64位

现在大多数的服务器都对32位操作系统实现支持,更有许多新型硬件支持着允许更多RAM的64位操作系统。

MongoDB也同时发布了32位及64位两个版本的数据库。归结于MongoDB使用的内存映射文件,32位版本只支持2G数据的存储。对于标准的Replica Set,MongoDB只拥有单一的处理策略 —— mongod。如果你想在未来储存2G以上的数据,请使用64位版本的MongoDB。如果拥有分片安装,那么32位版本同样可以使用。

总结:使用64位版本或者理解32位版本的限制。…

php开发基于mongodb数据库的字段类型问题

比如下面的数据结构

{
    'field_1': 1,
    'field_2': '1',
    'field_3': true
}

在脚本语言里,这三个值是相等的,但mongodb可不这样认为,如果你用string类型去寻找field_1的值,那么永远找不到。

可是像在php这种弱类型语言里,本来就是string,int傻傻分不清楚,所以使用mongodb的php程序员经常会出现以下杯具场景,你存储的时候主键是一个用函数生成的int型数字,但取出记录的时候可能直接使用前端传递过来的GET参数,很不巧它只能是一个string类型,这样你就永远找不到这条记录了。

解决以上问题,我觉得一开始就用php7的标量类型约束,最好启用严格模式是个好习惯,这样类型不对了,能有个提示,你就可以进行类型转换了。

 

转载请注明:http://blog.p2hp.com/archives/4708…

mongoDB No suitable servers found 错误解决

一、问题描述
用PHP连接mongoDB时报 No suitable servers found (`serverSelectionTryOnce` set): [connection refused calling ismaster on ‘127.0.0.0:20000’]  错误
二、分析问题
通过查阅各方面的资料,此问题的原因在于,操作系统开启了IPV6支持,但mongod未开启ipv6支持。或者如果是主从的话,可能主从的顺序弄错了。
三、解决问题

1、解决办法有以下3个:

(1)删除操作系统中ipv6解析,删除/etc/hosts'中的'::1 localhost, 这一行

(2)开启mongod的ipv6支持,参数:./bin/mongod –filePermissions 0777 –ipv6

 

 

(3) 调整主从顺序。…

mongodb导入bson数据

mongorestore -h 127.0.0.1:27017 -d u_67you –directoryperdb /data/u_67you

-h:MongoDB所在服务器地址

-d:需要恢复的数据库实例,例如:u_67you,当然这个名称也可以和备份时候的不一样,比如u_67you2

–directoryperdb:备份数据所在位置,例如:/data/u_67you

–drop:恢复的时候,先删除当前数据,然后恢复备份的数据。就是说,恢复后,备份后添加修改的数据都会被删除,慎用哦!

MongoDB 最佳实践 – 持续更新版

版本历史:

- V1.0  2017.02.06 TJ Tang 初始版本

前言

作为MongoDB的一名方案架构师,我的大部分时间都是在和MongoDB的客户和用户交互。在这里,我希望通过一个不断更新的活文章的方式来为大家收集整理一下MongoDB开发及维护时候值得了解或者遵从的一些最佳实践。我非常真切地希望您也可以参与进来,共同维护这个文档,让更多的用户受惠(可以通过文末微信号联系我)…

Page 1 of 3123