MongoDB常用操作
2016-08-18 19:06
381 查看
批量更改字段名
db.getCollection('db_hosts').update({}, {$rename : {"aggregate_top_5_avg_cpu_metric" : "aggregate_cpu_metric_top_5_avg" } }, {multi:true} )
批量删除字段与值
db.getCollection('db_hosts').update({}, {$unset : {"aggregate_cpu_metric_top_5_avg" : ""} } , {multi:true} )
添加索引
db.getCollection('db_hosts').ensureIndex({'value': -1})
添加组合索引并去重
db.getCollection('db_memory_metric').ensureIndex( {"host":1,"BusinessMinute":1}, {'unique': true, 'dropDups': true} )
复杂查询
因为字典不支持两个$or所以以下写法是不支持的:
{ $or: [{a: 2}, {a: 3}], $or: [{b: 5}, {b: 4}] }
奇葩的是,以上写法是有结果的,但是只有最后一个
$or结果有效,难以理解
所以mongo2.0引入
$and↓↓↓↓
{ $and: [ {$or : [{'a':2},{'b':3}]}, {$or : [{'a':4},{'b':5}]} ] }
所以如果fiter包含两个
$or就必须用
$and包住,具体如下:
db.getCollection('aggregate_day_host_metric2').find({"$and":[ {"BusinessDay":{"$gte":17043,"$lte":17043}}, {"$or":[ {"cpu_metric.top_5_avg":{"$gte":0,"$lte":20}}, {"memory_metric.top_5_avg":{"$gte":0,"$lte":19}}]}, {"$or":[ {"host.az_id":4001}, {"host.az_id":5001}]} ] })
相关文章推荐
- Mongodb 常用的查询方法
- mongodb不存在某个字段时,插入该字段
- mongodb命令批量插入json文件数据
- mongodb使用mongoose分组查询
- 数据库:mongodb与关系型数据库相比的优缺点 (转)
- mongodb开启认证功能,并且添加管理员
- MongoDB基本操作
- MongoDB学习(二)MongoDB 3.2.8的安装图解(小白版)
- MongoDB时间处理问题
- MongoDB VS hadoop
- mongodb关于$unset的键删操作
- CentOS6.5上源码安装MongoDB3.2.1
- MySQL和Oracle和Mongodb分页
- centos 7 安装 apache,php,并支持mongodb扩展
- win7下php 5.6连接mongodb扩展
- MongoDB-投影操作(1)-$slice
- MongoDB的安装
- MongoDB-学习笔记-基本概念
- Mongodb联合查询
- MongoDB下载安装与简单增删改查