mongo日常操作备忘
修改
普通修改
插入数据:
db.students.insert({
"name":"swrd",
"age":32,
"grade":"1.1",
"gender":"man"
})
修改name为swrd的age的值为40:
db.students.update({"name":"swrd"},{$set:{age:40}})
修改嵌套集合中的值
插入数据:
db.students.insert({
"name":"swrd",
"age":32,
"grade":"1.1",
"gender":"man",
"score":{
"English":34,
"Math":56,
"Chinese":89
}
})
修改swrd的数学成绩:
db.students.update({"name":"swrd"},{$set:{"score.Math":90}})
分组操作
db.test.aggregate([
{$match:{pay_status:1}},
{$group:
{_id:"$player_id", total:{$sum:"$price"}}},
{$sort:{"total":-1}}
])
上面是安装player_id分组,统计每个player_id的充值总和,然后按照充值大小降序排序。
查询
某段时间范围内的数据
db.things.find({"createTime":{"$gt":"2014-10-29 0:0:0"}}) // 大于某个时间
db.things.find({"createTime":{"$lt":"2014-10-29 0:0:0"}}) // 小于某个时间
db.things.find({"$and":[{"createTime":{"$gt":"2014-10-29 0:0:0"}},{"createTime":{"$lt":"2014-10-29 0:0:0"}}]}) // 某个时间段
嵌套属性的查询
db.customer.findOne({"login_user.phone":"110"})
phone是login_user的一个属性。
查询某个字段是否存在
查询course表中,存在lectures_count字段的记录信息
db.course.find( { "lectures.lectures_count": { $exists: true } } )
--删除course表中,所有的lectures.lectures_count字段
db.course.update({},{$unset:{"lectures.lectures_count":""}},{multi:true})
mongodb查询数字开头的集合
test:PRIMARY> show tables;
123abc
test
test_1
test_2
test_3
test_4
--查询123abc表
test:PRIMARY> db["123abc"].find()
{ "_id" : ObjectId("58b66d20aa82ef619b3ac109"), "id" : 1 }
用mongoexport 导出 -c 指定不会报错
mongoexport -d swrd -c 123abc --csv -f userId,time -o 123abc.csv
类型转换
下面这张表是BSON TYPE及他们对应的数字

下面的语句的目的是将total_iap字段为double的转换成int
db.basic.find({"game_info.total_iap":{$type:1}}).forEach(function(x){x.game_info.total_iap=NumberInt(x.game_info.total_iap);db.basic.save(x)})
求最大值最小值
并没有发现MongoDB有专用的求最大值的方法,不过可以通过排序和取第一条来代替。
下面的集合数据如下:
{ "_id" : ObjectId("54c39358acace71b1bd20a70"), "epoch_min" : NumberLong(1422030840), "usage_ratio" : 0.035140007734298706 }
{ "_id" : ObjectId("54c39358acace71b1bd20a71"), "epoch_min" : NumberLong(1422030900), "usage_ratio" : 0.025494230911135674 }
{ "_id" : ObjectId("54c39358acace71b1bd20a72"), "epoch_min" : NumberLong(1422030960), "usage_ratio" : 0.015415809117257595 }
mongodbCluster3:PRIMARY> db.cpu_data.find().sort({"usage_ratio":-1}).limit(1)
{ "_id" : ObjectId("54c39abbacace71b1bd599ac"), "epoch_min" : NumberLong(1422039660), "usage_ratio" : 0.5287633538246155 }
mongodbCluster3:PRIMARY> db.cpu_data.find().sort({"epoch_min":1}).limit(1)
{ "_id" : ObjectId("54c39358acace71b1bd20824"), "epoch_min" : NumberLong(1422028800), "usage_ratio" : 0.053253963589668274 }
mongo日常操作备忘的更多相关文章
- Axure常用操作备忘
目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...
- mongo操作备忘
#查看collection内 某个字段条目数 db.dictionary_system.find({"name":"xxx"}).count() #清空某个co ...
- DOS命令批量重命名文件配合Excel 操作备忘
批量取得文件夹下文件名 有时候文件夹下有好多图片什么的,文件名称不是统一的格式,想统一一下,于是google找到以下方法,进入要操作的目录,按住shift键的同时,单击鼠标右键,你会看到在此处打开命令 ...
- JavaScript 数组操作备忘
数组的定义: 方法1. var mycars=new Array()mycars[0]="Saab"mycars[1]="Volvo"mycars[2]=&qu ...
- docker常用操作备忘
一.docker安装 参考资料:阿里云镜像加速1. 安装/升级Docker客户端 curl -fsSL https://get.docker.com | bash -s docker --mirror ...
- kubectl 日常命令 备忘
目录 kubectl 常用命令 自动补全 Kubectl命令概览 常用命令分类 常用命令 声明式资源对象管理 查看资源状态 容器管理 集群管理 常用命令英文缩写 kubectl 常用命令 自动补全 使 ...
- QT常规控件操作备忘
QLabel设置边框和颜色: label->setFrameShape (QFrame::Box); label->setStyleSheet("border: 1px soli ...
- eclipse如何修改dynamic web module version;——eclipse操作备忘
1.eclipse如何修改dynamic web module version 一.修改工程属性: 右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic We ...
- iscsi 操作备忘
#查找iscsi节点 iscsiadm -m discovery -t st -p 192.168.20.225 #列出可用节点 iscsiadm -m node -T iqn.com.exapmle ...
随机推荐
- lesson 19 A very dear cat
lesson 19 A very dear cat dear adj. 亲爱的:尊敬的:昂贵的 表示几乎不,很少的词语 rarely hardly seldom scarcely flat = apa ...
- 一段代码-Java
在打算写这么一篇文章的时候,想到很多,觉得要是全都写下来的话,估计BZ也不知道要写多少,总之,好多吧!那么,就让BZ一切从简... 我们知道java它的特殊性在于,用它所写代码的运行是依靠自己的一套j ...
- halcon基础应用和方法经验分享
halcon基础应用和方法经验分享 一.Halcon软件 的安装 安装一直点下一步就好了,这个过程很简单,就不讲了 二.Halcon软件license安装 Halcon是商业视觉软件,是需要收费的,但 ...
- 初步了解CUDA(零)
初步了解CUDA,从历史开始,先不开发:
- #pragma pack(n)对齐格式
#pragma pack(n)对齐格式 #pragma pack(n) 是预处理器用来指定对齐格式的指令,表示n对齐.当元素字节小于n时,要扩展到n:若元素字节大于n则占用其实际大小. struct ...
- window.open()与window.showModalDialog区别
window.open()与window.showModalDialog区别 弹出窗口两种方式: 1.window.showModalDialog: var feature = &qu ...
- 从oracle导入hive
sqoop import --connect jdbc:oracle:thin:@10.39.1.43:1521/rcrm --username bi_query --password ####### ...
- 软件功能-东北师大站-第三次作业(PSP)
1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 本周PSP饼状图
- Windows环境下的TensorFlow安装过程
安装环境 Windows8.1 python3.5.x(TensorFlow only supports version 3.5.x of Python on Windows) pip 9.0.1 t ...
- JavaScript初探系列之String的基本操作
1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: var myStr = num.toString(); // "19& ...