有的时候,我们知道MongoDB的查询json是什么样的,但是到PHP的数组中,就很容易写错了。

比如:$elemMatch这个查询操作符。

$elemMatch 数组查询操作用于查询数组值中至少有一个能完全匹配所有的查询条件的文档。语法格式如下:

{ <field[......]

Read more

写这个博客主要是,MongoDB比较奇葩,至少我们这生产环境呢,有三种驱动:mongo(低于1.3.0)、mongo(高于1.3.0 MongoClient)以及mongodb。

ReadPreference这玩意儿不设置呢,集群模式会出现读写都在主片的情况,流量大了会很坑。而这个设置,[……]

Read more

最近同事调整mongo,加入了鉴权。结果设置到yii2里就一直报错:“Authentication failed.”。

后来发现,必须要指定对应的库,才能通过鉴权,于是顺藤摸瓜,找到了原因:
帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

参考资料:[……]

Read more

MongoDB比HBase好的地方在于:入门门槛相对较低,索引方面,检索的速度远比HBase那种查询要快多了。

HBase只能要么按照主键范围查询,要么全表检索。为什么大的互联网公司都在推行HBase呢,原因就在于写入的速度,HBase由于只维护一个主键,写入的速度要比MongoDB[……]

Read more

嗯,如果没这功能,当然是脚本走起喽,后来发现官方有这个功能,可以根据一个字段的更新情况来自动删除旧的数据。
设置索引的时候可以额外设置,当然,最低版本需要3.4。
示例代码:

db.eventlog.createIndex( { "lastModifiedDate":[......]

Read more

有的时候,需要导出MongoDB的数据为csv,直接人工查看~
导出到csv指令如下:

mongoexport -h 127.0.0.1 --port 10000 -d DBName -c CollectionName -f _id,a,b,c --csv -o d:\1.csv

相关参[……]

Read more

事情是这样的,mongo要清理一千八百万的垃圾数据,然后运维跑完,第二天一看,从库状态是RECOVERING,就手动搜了下,发现下面这篇文章解决方案符合,故全文转载。

以下全文转载自:MongoDB 分片集群故障RECOVERING 处理纪实

1、问题描述,备库故障RECOVE[……]

Read more