mongo
cominglately
时间过得好快 ...
勉力前行
展开
-
mongo的$size与count的区别
参考文件 $size https://docs.mongodb.com/manual/reference/operator/query/size/count https://docs.mongodb.com/manual/reference/method/db.collection.count/初用mongo 在命令行行中的执行查询结果数量的语句 , 所以记录一下 ,防原创 2017-06-05 18:18:14 · 6093 阅读 · 0 评论 -
MongoDb 索引原理
转载地址 http://www.mongoing.com/archives/2797为什么需要索引?当你抱怨MongoDB集合查询效率低的时候,可能你就需要考虑使用索引了,为了方便后续介绍,先科普下MongoDB里的索引机制(同样适用于其他的数据库比如mysql)。mongo-9552:PRIMARY> db.person.find(){ "_id"转载 2017-09-28 11:33:21 · 552 阅读 · 0 评论 -
ubuntu16.04 mongo refused
新服务器使用 robomongo 链接mongo的时候提示 refused解决方案: 1. /etc/mongodb.conf bind_ip = 127.0.0.1 修改成 0.0.0.0 2. sudo service mongodb restart备注:这个问题和mysql链接的时候也是一样的 都是需要更改监听的ip 但是生产原创 2017-11-21 11:43:45 · 206 阅读 · 0 评论 -
mongo 使用Command解决不同条件批量处理问题
参考链接 https://docs.mongodb.com/manual/reference/command/nav-crud/文中有一系列的可以批量处理的操作 下面show下 update 需求是这样:定时执行的脚本,不同条件的执行一批数据 使用foreach 单挑更新的话 出错的几率更加的大所提议选择了批量的更新 ,但是MongoCollecion 没有原创 2017-11-21 17:30:39 · 2747 阅读 · 0 评论 -
findAndModify与update更新的使用
yii框架 yii/mongo/Query 需要更新集合中特定的字段 ,Query里面查了查只有 mogify 折腾了半天,只是可以整个文档的替代 ,不信邪 ,跟进去看源码,原来是findAndModify 参考文档: https://docs.mongodb.com/manual/reference/method/db.collection.findAndModify/#db.coll原创 2017-06-14 14:24:38 · 2861 阅读 · 0 评论 -
mongodb cmd将字段更新成int32却变成double的情况
笔误: 问题代码copy成了解决后代码, @zhangvivid 谢谢指出场景: 在命令手动的为用户表添加新的整型字段db.getCollection('cuishou_user').findAndModify({query:{'id':{$in:[1]}},update:{$set:{'contract_status': 1}},new:true,upsert:tru...原创 2018-02-28 17:09:36 · 10288 阅读 · 4 评论 -
mongo update批量更新
参考链接 https://docs.mongodb.com/manual/reference/method/db.collection.update/findAndModify只会更新一个, update可以批量更新db.getCollection('cuishou_user').update({'id':{$in:[1,2,3,10,12,13]}}, //query{$set:{'con...原创 2018-03-06 10:50:13 · 19961 阅读 · 1 评论 -
mongo aggregate在mongo 升到3.6之后报错The 'cursor' option is required, except for aggregate with the expl
场景mongo库做了分片, 并且数据库从3.2升级到了3.6代码爆了bug解析追踪bug发现是使用aggregate时 在mongo >3.5版本的时候 强至需要cursor选项 `当然也可以使用explain选项,这样的得到的是本次查询的一些查询信息 类似于sql语句, 没什么用`解决cursor 指定分次查询的每次的查询的大小 两种方式 ...原创 2018-03-29 21:46:08 · 6330 阅读 · 1 评论 -
php Class 'MongoDB\Driver\Manager' not found
场景实例化一个原生的mongo类的类的时候报如下错误`Class MongoDB\Driver\Manager not found`报错代码$manager = new MongoDB\Driver\Manager("mongodb://localhost");$collection = new MongoDB\Collection($manager, "logs","cap...原创 2018-03-30 12:20:28 · 6307 阅读 · 0 评论 -
php 原生链接mongodb
转载地址 https://blog.csdn.net/miyatang/article/details/28606557文章摘要php链接部分 php 连接集群服务器示例: ,有点象oracle TNS,把多个服务器地址为列表,让客户端进行访问处理。...转载 2018-03-30 13:48:37 · 519 阅读 · 0 评论 -
mongo Cannot use 'commands' readMode, degrading to 'legacy' mode
场景: mongo新建的数据库和表 里面没有数据 只是占位 通过rebomongo 工具链接报错 mongo Cannot use 'commands' readMode, degrading to 'legacy' mode解析: 高版本的shell链接低版本mongo 会出现 Cannot use 'commands' readMode, degrading to ...原创 2018-03-27 10:15:34 · 1170 阅读 · 0 评论 -
mongo not master and slaveOk=false
场景mongo集群分析mongo默认不允许从库读取数据的,因为这时候主库的数据可能没有同步到从库。解决mongo这样设置是有道理的,但是如果一定要这样做 那么可以shell执行命令`rs.slaveOk()`...原创 2018-04-10 17:56:47 · 684 阅读 · 0 评论 -
thinkphp3.2(奇葩问题) $IP:27017: bad query: BadValue: $in needs an array
场景. thinkphp3.2 封装了一个函数对mongo进行查询,爆出如上错误. 事实上$in 绑定的的确是个数组, 如下{"uid":{"$in":{"0":{"value":"12"},"2":{"value":"19"}}},"time":{"$gte":"20180724&quo原创 2018-07-24 19:56:22 · 1361 阅读 · 0 评论 -
mongo error when saving document 1 not primary while writing to
文章目录场景解决场景mongo 手动修改数据报错 error when saving document 1 not primary while writing to解决选错了库,当前选定的是从库原创 2018-10-22 13:56:06 · 4195 阅读 · 0 评论 -
mongo aggregate遇到的坑($match $group顺序要求)
文章目录场景代码场景mongo aggregate 先通过match过滤掉一部分,然后将筛选出来的传递给match过滤掉一部分, 然后将筛选出来的传递给match过滤掉一部分,然后将筛选出来的传递给group, 这是正常的流程;但是没有想到执行是按照传递的参数的顺寻,而不是索引($match $group)代码下面可以正确得到需要数值写法 ($match在前)db.getCol...原创 2019-05-31 11:25:54 · 5798 阅读 · 0 评论 -
Mongo 大数据字段去重的实现
文章目录场景尝试1 (distinct)尝试2 (aggregate)尝试3 (写入文件)尝试4 (利用redis的Set)尝试5(数组)测试(当前消耗的内存)elasticsearch场景数据库mongo数量级300万每天增长5000 – 10000索引都已经建好了业务需要实时对集合中的tel去重尝试1 (distinct)使用mongo disti...原创 2019-08-27 19:03:24 · 1271 阅读 · 0 评论 -
mongo 添加索引(单字段索引, 联合索引 唯一索引,and union 区别) 和sparse选项的使用
参考文档: https://docs.mongodb.com/manual/reference/method/db.collection.createIndex/ sparse https://docs.mongodb.com/v3.0/tutorial/create-a-sparse-index/注意: 创建索引基本上都会使用的选项是spa...原创 2017-08-11 12:29:45 · 1930 阅读 · 0 评论 -
mongo ping函数实例
参考地址 http://php.net/manual/zh/mongocollection.findone.phpmongo 没有 ping函数 所以需要参照PDO的写法, findOne Throws MongoConnectionException if it cannot reach the database.// mongo instance原创 2017-09-12 10:04:26 · 1211 阅读 · 0 评论 -
mongoimport导入备份目录的实例
参考链接 https://docs.mongodb.com/manual/reference/program/mongoimport/mongoimort 并不具备导入整个备份文件目录的选项 所以操作还是要脚本完成 ls -1 每行只列出一个文件 ls -1 mongo_dump | while read jsonfile; do mongoimport --host原创 2017-09-14 10:08:38 · 558 阅读 · 0 评论 -
$in与$nin的使用($nin有点特殊)
参考文档 $in https://docs.mongodb.com/manual/reference/operator/query/in/$nin https://docs.mongodb.com/manual/reference/operator/query/nin/工作中用到了 $in $nin , 做个记录$in 用法:{field:{$in:[,...]}}查询原创 2017-06-05 18:36:05 · 6840 阅读 · 0 评论 -
sort的用法
参考文档 https://docs.mongodb.com/manual/reference/method/cursor.sort/工作用到 做个记录:用法:sort(field1:-1,field2:1)按照 field1倒叙 field2正序排列 1 asc -1 desceg:db.getCollection('sinfo').find({'logi原创 2017-06-05 19:02:37 · 764 阅读 · 0 评论 -
aggregate使用实例
db.getCollection('sid_info').aggregate([{$match:{cid:"1",end_time:{$lt:1496246399,$gt:1494950400}}}, {$group:{_id:"$cid",status_total:{$sum:1}}}])$match 是条件 $group里面的 _id="$cid" 是分组的依据 ,原创 2017-06-06 19:35:45 · 4515 阅读 · 0 评论 -
mongo奇葩问题(数据类型)
近期做了一个项目 ,自检的时候发现一个mongo 查询传递相同的参数 却会得到不同的数据,下面是打印处来的条件,一个可以正常化的获取数据另外一个不行 ,自检了函数的执行流程但是没发现问题 ,最后仔细的看了下数据类型 将 end_time 的条件强转成int 之后ok,; 那么问题来了 数据类型即使有问题 那么为什么有时候是对的呢array(3) { ["end_time"]=原创 2017-06-02 16:39:14 · 348 阅读 · 0 评论 -
remove 删除一个集合
参考文档 https://docs.mongodb.com/manual/reference/method/db.collection.remove/用法:db.collection.remove( query>, justOne>)eg:db.getCollection('report').remove({'sid':'SID75853be681764原创 2017-06-07 15:29:32 · 475 阅读 · 0 评论 -
The dollar ($) prefixed field '$inc' in '$inc' is not valid for storage
findAndModify的一个更新db.getCollection('cuishou_ids').findAndModify({ 'query':{ 'name':'user' }, 'update':{ $set:{$inc:{'id':1}} }, 'new':true原创 2017-07-10 17:04:41 · 4809 阅读 · 0 评论 -
mongo 条件判断某个field是不是存在的$exists
参考文档 https://docs.mongodb.com/manual/reference/operator/query/exists/eg:db.getCollection('sid_info').find({'field1':{$exists:false},'filed2':{$exists:false},'field3':{'$ne':'value3'}})原创 2017-06-30 18:38:30 · 7430 阅读 · 0 评论 -
mongo 操作缩写
$gt >$lt $gte >=$lte $ne not equal原创 2017-06-30 18:40:12 · 320 阅读 · 0 评论 -
mongo 对数据很严格 在使用组装条件的时候需要注意 字段的类型, 分享几个转换的函数
参考文档 http://php.net/manual/zh/function.intval.php http://php.net/manual/zh/function.strval.phpintval 将变量的整数值strval 返回变量的字符串值原创 2017-07-11 11:16:12 · 195 阅读 · 0 评论 -
php对mongo写操作 遇到的类型转换问题
php 对mongo 进行写操作的时候 int 写到mongo里面默认是NumberLong (int64)可以通过这样 转成int32$data['updated_at'] = new \MongoInt32(time());原创 2017-07-13 18:28:59 · 704 阅读 · 0 评论 -
(原生)获取mongo集合对象的实例
代码function getCollection($collection){ $mongo_config = array( 'dsn' => "mongodb://$host:$port", 'db' => $db, ); $m = new \MongoClient($mongo_config['dsn']); $db =原创 2017-06-28 10:59:22 · 803 阅读 · 0 评论 -
MongoCollection::batchInsert批量插入
参考文档 http://php.net/manual/zh/mongocollection.batchinsert.php原创 2017-07-25 16:27:20 · 2126 阅读 · 0 评论 -
tp3.2操作mongo SUM数据的实例(aggregate 不分组获取统计值)
参考文档 : http://php.net/manual/zh/mongocollection.aggregate.phptinkphp field没有封装关于mogno的sum用法 ;所以只能借助与原生的mongoCollection::aggregate()public function statCallLog($where) { $pipeline原创 2017-08-08 17:57:39 · 1848 阅读 · 0 评论 -
MongoCollection::findOne没有办法完成排序的工作
参考文档 http://php.net/manual/zh/mongocollection.findone.php折腾了很久没有找到 findOne排序的方法 , 现在确认没有这个选项 使用limit sort 替代iterator_to_array($collection->find($query, $fields)->sort(['_id' => -1])->limit(1))原创 2017-07-25 15:09:54 · 1977 阅读 · 0 评论 -
MongoCollection::find 内存泄漏以及规实例
参考文档:内存 http://php.net/manual/zh/mongocollection.find.phpphp 手册里面讲到: 使用 iterator_to_array() 会让驱动将强制载入所有搜索结果集到内存,所以对超过内存大小的结果集不要这么做!find会将得到的所有的数据放到数组中去 , 而数组是可能溢出的;order limit skip li原创 2017-08-17 13:55:50 · 945 阅读 · 0 评论 -
mongoexport 导出的实例
参考文档 mongoexport https://docs.mongodb.com/manual/reference/program/mongoexport/index.html<?php function checkDir($dir_name) { if (!file_exists($dir_name) || !is_dir($dir_na原创 2017-09-14 10:01:26 · 1674 阅读 · 0 评论 -
mongo cursor超时的问题
文章目录场景分析解决场景400万Mongo历史数据放入elasticsearch中, 历史数据放入之前要进行一定的过滤,转换操作, 使用默认的游标设置,报找不到游标分析游标两次请求之间 如果超过了10分钟 则自动销毁解决在生成游标的时候 设置timeout一般也不这样设置, 一定遇到异常 会操作资源无法自动销毁在生辰游标的时候 设置每次取出的数量这个数量一定是...原创 2019-09-03 16:30:59 · 1338 阅读 · 0 评论