1. 核心:
  2. mongod: 数据库核心进程
  3. mongos: 查询路由器,集群时用
  4. mongo: 交互终端(客户端)
  5.  
  6. 二进制导出导入:
  7. mongodump:导出bson数据
  8. mongorestore: 导入bson
  9. bsondump: bson转换为json
  10. monoplog:
  11.  
  12. 数据导出导入
  13. mongoexport: 导出json,csv,tsv格式
  14. mongoimport: 导入json,csv,tsv
  15.  
  16. 诊断工具:
  17. mongostats
  18. mongotop
  19. mongosniff 用来检查mongo运行状态
  20.  
  21. 1: 创建数据库目录, /data/db ,
  22. 2: ./mongodb --dbpath /data/db
  23. 3: mongodb要求磁盘剩余空间>=4G,
  24. 如果不够,可以用 --smallfiles 选项
  25.  
  26. 1:插入单条记录,不指定主键
  27. db.collectionName.insert({name:'lisi',age:28});
  28. 2: 插入单条记录,指定主键
  29. db.collctionName.insert({_id:3,name:'lisi',age:28});
  30. 3: 插入多条记录
  31. db.collctionName.insert([
  32. {_id:4,name:'wangwu',age:60}
  33. ]);
  34.  
  35. Update时可用的操作符
  36. 例:
  37. ->db.user.insert({name:'lisi',age:12,sex:'male',height:123,area:'haidian'});
  38. ->db.user.update({name:'lisi'},{$set:{area:'chaoyang'},$unset:{height:1},$inc:{age:1},$rename:{sex:'gender'}});
  39. > db.user.find();
  40. { "_id" : ObjectId("51fc01c4f5de93e1f2856e33"), "age" : 13, "area" : "chaoyang", "gender" : "male", "name" : "lisi" }
  41.  
  42. $setOnInsert ->相当于mysql中的列的默认值
  43.  
  44. $gt:>,$gte:>=,$in=in$lt:<,$lte:<=,$ne:!=,$ninnot in$all:所有,$or:or$andand$not:not$nor:都不成立,$exists:某列存在,$mod:取模,$type:数据为某类型,$where$regex:正则表达式,$inc:增长,$rename:重命名列,$setOnInsert$set:设置字段的新值,$unset:删除指定的列
  45.  
  46. 查询表达式:
  47. db.goods.find().count()//31
  48. db.goods.find({goods_id:32})//goods_id=32的
  49.  
  50. 1: 最简单的查询表达式
  51. {filed:value} ,是指查询field列的值为value的文档
  52. 2: $ne --- != 查询表达式
  53. {field:{$ne:value}}
  54. 作用--查filed列的值 不等于 value 的文档
  55. 3: $nin --> not in
  56. 4: $all
  57. 语法: {field:{$all:[v1,v2..]}}
  58. 是指取出 field列是一个数组,且至少包含 v1,v2
  59. 5: $exists
  60. 语法: {field:{$exists:1}}
  61. 作用: 查询出含有field字段的文档
  62. 6: $nor,
  63. {$nor,[条件1,条件2]}是指 所有条件都不满足的文档为真返回
  64.  
  65. ------------------------------------------------------
  66.  
  67. db.goods.find(
  68. {
  69. cat_id:{$ne:3}, //cat_id不等于3
  70. shop_price:{$gt:1000}, //shop_price大于1000
  71. shop_price:{$lte:100}}, //低于或等于
  72. market_price:{$in:[4,11]}, //4或者11
  73. goods_name:"KD876", //goods_name="KD876"
  74. $and:
  75. [
  76. {shop_price:{$gt:100}},{shop_price:{$lt:1000}}
  77. ], //价格介于100--
  78. },
  79. {
  80. cat_id:1, //查cat_id,goods_name列,不查_id
  81. goods_name:1,
  82. _id:0
  83. }
  84. )
  85. ------------------------------------------------------
  86. 1.7:取出不属于第3栏目且不属于第11栏目的商品($and $nin$nor分别实现)
  87. db.goods.find(
  88. {
  89. $and:[ //and是并且
  90. {cat_id:{$ne:3}}, //不等于3
  91. {cat_id:{$ne:11}} //不等于11
  92. ]
  93. },
  94. {
  95. goods_name:1,
  96. cat_id:1
  97. }
  98. )
  99. ------------------------------------------------------
  100. db.goods.find(
  101. {
  102. goods_id:{$mod:[5,0]} //对哪个列做判断,取模,对5取模为0
  103. },
  104. { //取那几列
  105. goods_id:1,
  106. goods_name:1,
  107. _id:0
  108. }
  109. )
  110.  
  111. ------------------------------------------------------
  112. db.goods.find(
  113. {
  114. age:{$exists:1} //有age列的json文档,colletion的每一行就是一个bson,json列结构不一样,
  115. }
  116. )
  117. ------------------------------------------------------
  118. db.stu.insert(name:"lily",hobby:['a','b','c'])
  119. db.stu.insert(name:"lucy",hobby:['e','b','c'])
  120. db.stu.find(
  121. {
  122. hobby:{$all:['b','c']} //所指定的内容都要有
  123. }
  124. ) //2条都出来
  125. db.stu.find(
  126. {
  127. hobby:{$all:['q','c']}
  128. }
  129. ) //没有
  130. ---------------------where要把二进制转换为json对象---------------------------------
  131. db.goods.find(
  132. {
  133. $where:'this.cat_id ==3 && this.cat_id ==4' //用where把二进制文件转换为一个json对象,不用where是直接二进制比较,where的效率低
  134. }
  135. )
  136.  
  137. db.goods.find(
  138. {
  139. $where:'this.shop_price > 300 && this.shop_price < 400 || this.shop_price > 3000 && this.shop_price < 4000'
  140. }
  141. )
  142. -----------------正则表达式效率也低-------------------------------------
  143. db.goods.find(
  144. {
  145. goods_name:{$regex:/^诺基亚.*/} //诺基亚开头的
  146. }
  147. )
  148. ------------------------------------------------------
  149. db.goods.find(
  150. {
  151. hobby:{$type:2} //查询age列是字符串类型的,double:1,string:2,object:3,Array:4,boolean:8,date:9,null:10,
  152. }
  153. )
  154. ------------------------------------------------------
  155. db.goods.find(
  156. {
  157. cat_id:{$nin:[3,11]}
  158. },
  159. {
  160. goods_name:1,
  161. cat_id:1
  162. }
  163. );
  164. ------------------------------------------------------
  165. db.goods.find(
  166. {
  167. $nor:[ //都不成立
  168. {cat_id:3},
  169. {cat_id:11}
  170. ]
  171. },
  172. {
  173. goods_name:1,
  174. cat_id:1
  175. }
  176. );
  177.  
  178. 1.8:取出价格大于100且小于300,或者大于4000且小于5000的商品()
  179. db.goods.find(
  180. {
  181. $or: //2个or打中括号,对多列限制
  182. [
  183. { //每一个打大括号
  184. $and:
  185. [ //2个and打中括号
  186. {shop_price:{$gt:100}}, //每一个打大括号,对一列限制
  187. {shop_price:{$lt:300}}
  188. ]
  189. },
  190. {
  191. $and:
  192. [
  193. {shop_price:{$gt:4000}},
  194. {shop_price:{$lt:5000}}
  195. ]
  196. }
  197. ]
  198. },
  199. {
  200. goods_name:1,
  201. shop_price:1
  202. }
  203. );
  204.  
  205. 1.9:取出goods_id%5 == 1, 即,1,6,11,..这样的商品
  206. db.goods.find({goods_id:{$mod:[5,1]}});
  207.  
  208. 1.10:取出有age属性的文档
  209. db.stu.find({age:{$exists:1}});
  210. 含有age属性的文档将会被查出
  211.  
  212. ------------------------------------------------------
  213. use shop
  214. for(var i=0;i<10000;i++){
  215. db.bar.insert({_id:i++,title:'hello'+i});
  216. } //迅速在mongo里面插入10000条数据
  217. db.bar.find().count();
  218. ------------------------------------------------------
  219. 游标cursor分页查询:
  220. 通俗的说,游标不是查询结果,而是查询的返回资源,或者接口.
  221. 通过这个接口,你可以逐条读取.就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行一行的读文件.
  222. </pre>

mongo04---基本查询的更多相关文章

  1. 使用TSQL查询和更新 JSON 数据

    JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...

  2. UWP 律师查询 MVVM

    APP简介 律师查询是基于聚合数据的律师查询接口做的,这个接口目前处于停用状态,但是,由于我是之前申请的,所以,还可以用,应该是无法再申请了. 效果图 开发 一.HttpHelper 既然是请求接口的 ...

  3. Elasticsearch 5.0 中term 查询和match 查询的认识

    Elasticsearch 5.0 关于term query和match query的认识 一.基本情况 前言:term query和match query牵扯的东西比较多,例如分词器.mapping ...

  4. ASP.NET Aries 入门开发教程4:查询区的下拉配置

    背景: 今天去深圳溜达了一天,刚回来,看到首页都是微软大法好,看来离.NET的春天就差3个月了~~ 回到正题,这篇的教程讲解下拉配置. 查询区的下拉配置: 1:查询框怎么配置成下拉? 在配置表头:格式 ...

  5. ASP.NET Aries 入门开发教程3:开发一个列表页面及操控查询区

    前言: Aries框架毕竟是开发框架,所以重点还是要写代码的,这样开发人员才不会失业,哈. 步骤1:新建html 建一个Html,主要有三步: 1:引入Aries.Loader.js 2:弄一个tab ...

  6. ExtJS 4.2 业务开发(二)数据展示和查询

    本篇开始模拟一个船舶管理系统,提供查询.添加.修改船舶的功能,这里介绍其中的数据展示和查询功能. 目录 1. 数据展示 2. 数据查询 3. 在线演示 1. 数据展示 在这里我们将模拟一个船舶管理系统 ...

  7. 深入理解MySql子查询IN的执行和优化

    IN为什么慢? 在应用程序中使用子查询后,SQL语句的查询性能变得非常糟糕.例如: SELECT driver_id FROM driver where driver_id in (SELECT dr ...

  8. ElasticSearch 5学习(10)——结构化查询(包括新特性)

    之前我们所有的查询都属于命令行查询,但是不利于复杂的查询,而且一般在项目开发中不使用命令行查询方式,只有在调试测试时使用简单命令行查询,但是,如果想要善用搜索,我们必须使用请求体查询(request ...

  9. 【初学python】使用python连接mysql数据查询结果并显示

    因为测试工作经常需要与后台数据库进行数据比较和统计,所以采用python编写连接数据库脚本方便测试,提高工作效率,脚本如下(python连接mysql需要引入第三方库MySQLdb,百度下载安装) # ...

  10. JdbcTemplate+PageImpl实现多表分页查询

    一.基础实体 @MappedSuperclass public abstract class AbsIdEntity implements Serializable { private static ...

随机推荐

  1. 【瞎扯】我的OI之路

    这里大概是一些我自己对我的OI之路的一些记录. 2015.11不知道哪一天-- 我听说了"编程". 当时还不懂得啥是信息学竞赛,以为这只是纯粹的程序设计.后来才明白信息学竞赛是算法 ...

  2. winform中ComboBox控件的简单使用

    在开发winform中用到了ComboBox,但是发现和asp.net中的DropDownList差别比我想象中的大. 给ComboBox添加数据总结的有两种方法(绑定数据库在这里不说): 第一种方法 ...

  3. PTA 05-树9 Huffman Codes (30分)

    题目地址 https://pta.patest.cn/pta/test/16/exam/4/question/671 5-9 Huffman Codes   (30分) In 1953, David ...

  4. B题 Sort the Array

    题目大意:判断能否通过一次倒置,使序列变为一个递增序列 如果可以,输出倒置那一段的起始点和终点的位置: 题目链接:http://codeforces.com/problemset/problem/45 ...

  5. [luoguP3694] 邦邦的大合唱站队/签到题(状压DP)

    传送门 来自kkk的题解: 70分做法:枚举每个学校顺序,暴力. 100分:状压dp.从队列头到尾DP, 状态:f[i]表示i状态下最小的出列(不一致)的个数. 比如f[1101]表示从头到位为1/3 ...

  6. BZOJ 1303: [CQOI2009]中位数图 【水题】

    给出1~n的一个排列,统计该排列有多少个长度为奇数的连续子序列的中位数是b.中位数是指把所有元素从小到大排列后,位于中间的数. Input 第一行为两个正整数n和b ,第二行为1~n 的排列. Out ...

  7. CentOS6 Install kafka

    https://www.cnblogs.com/caoguo/p/5958608.html

  8. CodeForces 599A Patrick and Shopping

    水题.每种情况取最小值即可. #include<cstdio> #include<cstring> #include<cmath> #include<algo ...

  9. scoi2018游记

    day1: t1点分树 冬令营上jry讲过原题,t2启发式合并+解二次同余方程 预计100+100+0 结果t1卡内存,t2模数太大.导致调试到没有写t3 最后t1 85 t2 15 要是我会o1快速 ...

  10. hdu6110(线段树+lca)

    题目 http://acm.hdu.edu.cn/showproblem.php?pid=6110 分析 注意到,若干条路径的交一定也是条路径 我们可以维护一个线段树,seg[l..r]存着第l条~第 ...