2019独角兽企业重金招聘Python工程师标准>>>

1。适用场景:持久化缓存层,高效的时效性,用于对象和Json数据的存储,高伸缩性的场景,大尺寸,低价值的数据存储。
不适用:高度事务性的场景,复杂多表查询,传统商业智能应用。
2.保持mongodb开机自启动:echo "/usr/local/mongodb/bin/mongod--dbpath=/usr/local/mongodb/data" >>/etc/rc.local
3.杀掉进程 pkill或者kilall
4.数据类型:null:表示空值或者不存在{“name":null}  布尔类型: {“name":true} ,32位整数:将被转义位64位浮点数,
64位整数:同上。64位浮点数:默认类型如 {“money":12.02} 字符串类型: {“name":‘各地分公司’} ,
ObjectId类型:文档唯一的12位id,由时间戳,机器吗  pid  计数器组成。
日期: {“one":new Date()}  正则:{“name":/ho/i} 采用JS的正则语法
代码:{“name":function(){}}  数组:{“x":["a","b",["c","d"]]} 值可以数组,也可以在数组嵌套数组
5. db.blog.insert和db.blog.save的区别:当插入一条主键相同的数据,insert会报错,不允许插入,而save则会更新也就是覆盖原来的值。
6.用JS循环插入数据 举例:
  for(i=1;i<=20;i++){
... db.blog.insert({"name":"user"+i,age:i})
... }
输入it显示更多。
7.注意count的用法:如集合有10条数据,db.blog. count()输出10。如果前面加条件,例:db.blog.sort({"age":-1}).skip(2).limit(2).count();按理应该结果是2,但实际是10,因为count忽略了前面的条件,count有两个参数,1代表不忽略0代表忽略,默认是0.
注意sort的位置:放在前面和后面结果是不同的,表示先排序后执行条件还是先执行条件后排序。
8.查询name为user1并且age为1的数据: db.blog.find({"name":"user1","age":1})
9.or和nor的用法:
查询  name为user1或者age为1的数据: db.blog.find({$or:[{"name":"user1"},{"age":10}]})
结果: { "_id" : ObjectId("51c072290adf859a09bec715"), "name" : "user1", "age" : 1 }
> db.blog.find({$or:[{"name":"user1"},{"age":10}]})
{ "_id" : ObjectId("51c072290adf859a09bec715"), "name" : "user1", "age" : 1 }
{ "_id" : ObjectId("51c072290adf859a09bec71e"), "name" : "user10", "age" : 10 }
{ "_id" : ObjectId("51c1b114cf61cd895f843543"), "name" : "user1", "age" : 21 }
查询  name不为user1或者age不为1的数据: db.blog.find({$nor:[{"name":"user1"},{"age":10}]})
查询  name不为user1或者name不为user2的数据: db.blog.find({$nor:[{"name":"user1"},{"name":"user2"}]})
10.distinct过滤重复记录如: db.blog.distinct("name")
11.数组内对象查找 比如查找post里面tit为1的数据:  db.ceshi.find({"post.tit":1})
结果: { "_id" : ObjectId("51c1bb601a7338d22dcd6010"), "name" : "user1", "post" : [ { "tit" : 1 }, { "tit" : 2 }, { "tit" : 3 } ] }
另一种方法:$elemMatch,用法如: db.ceshi.find({"post":{$elemMatch:{"tit":1}}})结果如上.
12.游标:
 比如X=db.blog.find()回车将得到数据就集合所有记录
定义变量x:var x=db.blog.find();回车输入x.hasNext()判断是否有下一条记录返回true或者false.如果返回true说明有数据,回车输入x.next()则输出第一条记录,继续回车输入x.next()输出下一条,直到x.haveNext返回false,如果继续x.next()将报错. 
13.Null值查询:比如查询一条age为null的记录,按原先的思路 db.blog.find({"age":null})这样会把不存在age的记录也查出来,显然不对.
那么如何查询呢,有这么几种方法:1,  db.blog.find({"age":{$exists:1,$in:[null]}})查询age存在的然后筛选出值为null的
2.  db.blog.find({"age":{$type:10}})查出age值类型为10的记录
14.有如下有一条数据:  { "_id" : ObjectId("51c1c8121a7338d22dcd6013"), "name" : "user1", "tiezi" : [ { "title" : "124" }, { "title" : "34543" }, { "title" : "345345" } ] }
如何查出name为user1的前两篇帖子呢可以用$slice方法: db.ceshi.find({"name":"user1"},{tiezi:{$slice:2}})
后两篇: db.ceshi.find({"name":"user1"},{tiezi:{$slice:-2}})

转载于:https://my.oschina.net/u/143473/blog/138997

mongodb学习笔记6--杂项与补充相关推荐

  1. MongoDB学习笔记(入门)

    MongoDB学习笔记(入门) 一.文档的注意事项: 1.  键值对是有序的,如:{ "name" : "stephen", "genda" ...

  2. MongoDB学习笔记【2】-- 试用

    大部分内容根据MongoDB官方手册整理:http://docs.mongodb.org/manual/contents/ 查看数据库 [root@slayer ~]# mongo MongoDB s ...

  3. MongoDB学习笔记(四)使用Java进行实时监控与数据收集(空间使用量、连接数)

    目录: MongoDB学习笔记(一)环境搭建与常用操作 MongoDB学习笔记(二)使用Java操作MongoDB MongoDB学习笔记(三)使用Spring Data操作MongoDB Mongo ...

  4. MongoDB学习笔记(一) MongoDB介绍及安装

    系列目录 MongoDB学习笔记(一) MongoDB介绍及安装     MongoDB学习笔记(二) 通过samus驱动实现基本数据操作     MongoDB学习笔记(三) 在MVC模式下通过Jq ...

  5. PHP操作MongoDB学习笔记

    PHP操作MongoDB技術總結 <?php /** * PHP操作MongoDB学习笔记 */ //************************* //**   连接MongoDB数据库  ...

  6. MongoDB学习笔记(四)--索引 性能优化

    索引                                                                                             基础索引 ...

  7. MongoDB学习笔记一:MongoDB的下载和安装

    MongoDB学习笔记一:MongoDB的下载和安装 趁着这几天比較空暇,准备学习一下MongoDB数据库.今天就简单的学习了一些MongoDB的下载和安装.并创建了存储MongoDB的数据仓库. 将 ...

  8. MongoDB 学习笔记八 复制、分片、备份与恢复、监控

    MongoDB 学习笔记八 复制.分片.备份与恢复.监控 MongoDB复制(副本集) 什么是复制? MongoDB 复制原理 MongoDB 副本集设置 副本集添加成员 MongoDB 分片 分片 ...

  9. MongoDB学习笔记~对集合属性的操作

    $unset清除元素 请注意在单个数组元素上使用$unset的结果可能与你设想的不一样.其结果只是将元素的值设置为null,而非删除整个元素.要想彻底删除某个数组元素,可以用$pull 和$pop操作 ...

最新文章

  1. seaborn使用violinplot函数可视化水平小提琴图(Make Horizontal Violin Plot with violinplot in Seaborn)
  2. 汇编语言 ADC指令和SBB指令
  3. 函数sigsuspend
  4. 报表中Mail Label 的使用
  5. 北京允许无人车上路后,Pony.ai正式广州开跑
  6. 判断日期yyyymmdd
  7. duilib菜单动态添加
  8. 2022 极术通讯-安谋科技迎来发展新机遇
  9. 线性代数(九) : 矩阵的行简化阶梯型和标准型
  10. 【数据库】ER图进行描述某系统之学习七
  11. 大脑神经网络图高清,大脑神经网络图片
  12. Mysql 5.7.11压缩版安装及问题解决
  13. 使用ZAP寻找敏感文件和目录
  14. 常见乱码问题分析和总结
  15. 腾讯+字节+阿里面经真题汇总,总结到位
  16. java 获取当年_java获取当年第一天
  17. HTML表格标签(table)
  18. Linux下vi编译器用C语言写九九乘法表
  19. Linux系统中DNS域名服务器
  20. 在文件夹中快速打开命令行

热门文章

  1. Windows下编译Chrome V8
  2. Ubuntu下允许Root用户直接登录图形界面
  3. PDF文字怎么编辑,PDF文档编辑方法
  4. 手把手教你如何新建scrapy爬虫框架的第一个项目(下)
  5. firefox下的调试工具
  6. break continue
  7. Windows Embedded Standard开发初体验(四)
  8. [NOI2010]能量采集
  9. jquery插件-表单验证插件-提示信息中文化与定制提示信息
  10. After Effects CS4 期末考试卷