修改

普通修改

插入数据:

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日常操作备忘的更多相关文章

  1. Axure常用操作备忘

    目录 前言 技巧 边框重合 复制对象文本居中 复制粘贴样式 文本自适应 给图形添加连接点 导出图片无空白 前言 下面列出Axure画图过程中曾经遇到过的问题,备忘一下,避免别人也走弯路,法布施一下~ ...

  2. mongo操作备忘

    #查看collection内 某个字段条目数 db.dictionary_system.find({"name":"xxx"}).count() #清空某个co ...

  3. DOS命令批量重命名文件配合Excel 操作备忘

    批量取得文件夹下文件名 有时候文件夹下有好多图片什么的,文件名称不是统一的格式,想统一一下,于是google找到以下方法,进入要操作的目录,按住shift键的同时,单击鼠标右键,你会看到在此处打开命令 ...

  4. JavaScript 数组操作备忘

    数组的定义: 方法1. var mycars=new Array()mycars[0]="Saab"mycars[1]="Volvo"mycars[2]=&qu ...

  5. docker常用操作备忘

    一.docker安装 参考资料:阿里云镜像加速1. 安装/升级Docker客户端 curl -fsSL https://get.docker.com | bash -s docker --mirror ...

  6. kubectl 日常命令 备忘

    目录 kubectl 常用命令 自动补全 Kubectl命令概览 常用命令分类 常用命令 声明式资源对象管理 查看资源状态 容器管理 集群管理 常用命令英文缩写 kubectl 常用命令 自动补全 使 ...

  7. QT常规控件操作备忘

    QLabel设置边框和颜色: label->setFrameShape (QFrame::Box); label->setStyleSheet("border: 1px soli ...

  8. eclipse如何修改dynamic web module version;——eclipse操作备忘

    1.eclipse如何修改dynamic web module version 一.修改工程属性: 右键eclipse的工程,选择属性,再选择Project Facets里面中选择Dynamic We ...

  9. iscsi 操作备忘

    #查找iscsi节点 iscsiadm -m discovery -t st -p 192.168.20.225 #列出可用节点 iscsiadm -m node -T iqn.com.exapmle ...

随机推荐

  1. lesson 19 A very dear cat

    lesson 19 A very dear cat dear adj. 亲爱的:尊敬的:昂贵的 表示几乎不,很少的词语 rarely hardly seldom scarcely flat = apa ...

  2. 一段代码-Java

    在打算写这么一篇文章的时候,想到很多,觉得要是全都写下来的话,估计BZ也不知道要写多少,总之,好多吧!那么,就让BZ一切从简... 我们知道java它的特殊性在于,用它所写代码的运行是依靠自己的一套j ...

  3. halcon基础应用和方法经验分享

    halcon基础应用和方法经验分享 一.Halcon软件 的安装 安装一直点下一步就好了,这个过程很简单,就不讲了 二.Halcon软件license安装 Halcon是商业视觉软件,是需要收费的,但 ...

  4. 初步了解CUDA(零)

    初步了解CUDA,从历史开始,先不开发:

  5. #pragma pack(n)对齐格式

    #pragma pack(n)对齐格式 #pragma pack(n) 是预处理器用来指定对齐格式的指令,表示n对齐.当元素字节小于n时,要扩展到n:若元素字节大于n则占用其实际大小. struct ...

  6. window.open()与window.showModalDialog区别

    window.open()与window.showModalDialog区别 弹出窗口两种方式:    1.window.showModalDialog:      var feature = &qu ...

  7. 从oracle导入hive

    sqoop import --connect jdbc:oracle:thin:@10.39.1.43:1521/rcrm --username bi_query --password ####### ...

  8. 软件功能-东北师大站-第三次作业(PSP)

    1.本周PSP 2.本周进度条 3.本周累计进度图 代码累计折线图 博文字数累计折线图 本周PSP饼状图

  9. Windows环境下的TensorFlow安装过程

    安装环境 Windows8.1 python3.5.x(TensorFlow only supports version 3.5.x of Python on Windows) pip 9.0.1 t ...

  10. JavaScript初探系列之String的基本操作

    1.字符串转换 字符串转换是最基础的要求和工作,你可以将任何类型的数据都转换为字符串,你可以用下面三种方法的任何一种: var myStr = num.toString(); // "19& ...