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. 【渝粤教育】 国家开放大学2020年春季 1171科学与技术 参考试题
  2. python3动态生成变量_【转载】 Python动态生成变量
  3. 田渊栋:博士五年总结
  4. 领域驱动设计(DDD):领域和子域
  5. .NET学习知识和技术总结
  6. 德力西双电源自动转换开关说明书_聊聊双电源转换的那点事。
  7. linux停止rpc服务,Linux系统安装启动rpc服务,解决Loadrunner监控不到资源问题
  8. 谷歌TPU2代有望取代英伟达GPU?测评结果显示…
  9. elementui el-radio-group 分组排序问题
  10. 旅游大数据:从投资决策到分析工作的常态化
  11. ActiveReports报表设计器
  12. YAPI自动生成接口文档,解放测试人生产力...
  13. 获得浏览器设置的语言
  14. 无人驾驶到底怎么赚钱?很现实,八仙过海,各显神通
  15. 一切从项目Kick Off开始
  16. 2019.08.12【NOIP提高组】模拟 A 组
  17. 开通微信服务号需要准备的材料
  18. [收藏]POSIX标准
  19. Invalid prop: type check failed for prop closeOnClickModal. Expected Boolean, got String with valu
  20. Zappos:卖鞋的亚马逊

热门文章

  1. c语言c++语言中静态变量,函数详解
  2. 《爱情公寓2》将播 恶搞宣传片大喊“有种别看”
  3. AI教育公司物灵科技完成战略融资,商汤科技投资
  4. 经典的Java基础面试题集锦
  5. 分享一个 markdown 编辑器 - Mditor
  6. android网络编程之HttpUrlConnection的讲解--GET请求
  7. Exchange 2010 恢复误删除的邮箱账户及其邮箱
  8. svn中的revert和update
  9. 《星辰变OL》估计很多人看过这书
  10. 什么是JAVA内容仓库(Java Content Repository)(3)