核心:
mongod: 数据库核心进程
mongos: 查询路由器,集群时用
mongo:   交互终端(客户端)二进制导出导入:
mongodump:导出bson数据
mongorestore: 导入bson
bsondump: bson转换为json
monoplog:数据导出导入
mongoexport: 导出json,csv,tsv格式
mongoimport: 导入json,csv,tsv诊断工具:
mongostats
mongotop
mongosniff  用来检查mongo运行状态1: 创建数据库目录, 如 /data/db ,
2: ./mongodb --dbpath /data/db
3: mongodb要求磁盘剩余空间>=4G,
如果不够,可以用 --smallfiles 选项1:插入单条记录,不指定主键
db.collectionName.insert({name:'lisi',age:28});
2: 插入单条记录,指定主键
db.collctionName.insert({_id:3,name:'lisi',age:28});
3: 插入多条记录
db.collctionName.insert([
{_id:4,name:'wangwu',age:60}
]);Update时可用的操作符
例:
->db.user.insert({name:'lisi',age:12,sex:'male',height:123,area:'haidian'});
->db.user.update({name:'lisi'},{$set:{area:'chaoyang'},$unset:{height:1},$inc:{age:1},$rename:{sex:'gender'}});
> db.user.find();
{ "_id" : ObjectId("51fc01c4f5de93e1f2856e33"), "age" : 13, "area" : "chaoyang", "gender" : "male", "name" : "lisi" }$setOnInsert ->相当于mysql中的列的默认值$gt:>,$gte:>=,$in=in,$lt:<,$lte:<=,$ne:!=,$nin:not in,$all:所有,$or:or,$and:and,$not:not,$nor:都不成立,$exists:某列存在,$mod:取模,$type:数据为某类型,$where,$regex:正则表达式,$inc:增长,$rename:重命名列,$setOnInsert,$set:设置字段的新值,$unset:删除指定的列查询表达式:
db.goods.find().count()//31
db.goods.find({goods_id:32})//goods_id=32的1: 最简单的查询表达式
{filed:value} ,是指查询field列的值为value的文档
2: $ne --- != 查询表达式
{field:{$ne:value}}
作用--查filed列的值 不等于 value 的文档
3: $nin --> not in
4: $all
语法: {field:{$all:[v1,v2..]}}
是指取出 field列是一个数组,且至少包含 v1,v2值
5: $exists
语法: {field:{$exists:1}}
作用: 查询出含有field字段的文档
6: $nor,
{$nor,[条件1,条件2]}是指  所有条件都不满足的文档为真返回------------------------------------------------------

db.goods.find({cat_id:{$ne:3},                //cat_id不等于3shop_price:{$gt:1000},      //shop_price大于1000shop_price:{$lte:100}},        //低于或等于market_price:{$in:[4,11]},  //4或者11goods_name:"KD876",               //goods_name="KD876"$and:[{shop_price:{$gt:100}},{shop_price:{$lt:1000}}],                           //价格介于100--1000
    },{cat_id:1,   //查cat_id,goods_name列,不查_idgoods_name:1,_id:0}
)
------------------------------------------------------
1.7:取出不属于第3栏目且不属于第11栏目的商品($and $nin和$nor分别实现)db.goods.find({$and:[   //and是并且{cat_id:{$ne:3}},    //不等于3{cat_id:{$ne:11}}    //不等于11]},{goods_name:1,cat_id:1})------------------------------------------------------
 db.goods.find({goods_id:{$mod:[5,0]}        //对哪个列做判断,取模,对5取模为0},  {                              //取那几列goods_id:1,goods_name:1,_id:0} )------------------------------------------------------
 db.goods.find({age:{$exists:1}            //有age列的json文档,colletion的每一行就是一个bson,json列结构不一样,}
)------------------------------------------------------db.stu.insert(name:"lily",hobby:['a','b','c'])db.stu.insert(name:"lucy",hobby:['e','b','c'])db.stu.find({hobby:{$all:['b','c']}   //所指定的内容都要有})   //2条都出来db.stu.find({hobby:{$all:['q','c']} })   //没有---------------------where要把二进制转换为json对象---------------------------------
 db.goods.find({$where:'this.cat_id ==3 && this.cat_id ==4'    //用where把二进制文件转换为一个json对象,不用where是直接二进制比较,where的效率低})db.goods.find({$where:'this.shop_price > 300 && this.shop_price < 400 || this.shop_price > 3000 && this.shop_price < 4000'})
-----------------正则表达式效率也低-------------------------------------
db.goods.find({goods_name:{$regex:/^诺基亚.*/}   //诺基亚开头的}
)------------------------------------------------------
 db.goods.find({hobby:{$type:2}   //查询age列是字符串类型的,double:1,string:2,object:3,Array:4,boolean:8,date:9,null:10,})------------------------------------------------------
 db.goods.find({cat_id:{$nin:[3,11]}},{goods_name:1,cat_id:1});------------------------------------------------------
 db.goods.find({$nor:[    //都不成立{cat_id:3},{cat_id:11}]},{goods_name:1,cat_id:1});1.8:取出价格大于100且小于300,或者大于4000且小于5000的商品()
db.goods.find({$or:    //2个or打中括号,对多列限制[{    //每一个打大括号$and:[        //2个and打中括号{shop_price:{$gt:100}},        //每一个打大括号,对一列限制{shop_price:{$lt:300}}]},{$and:[{shop_price:{$gt:4000}},{shop_price:{$lt:5000}}]}]},{goods_name:1,shop_price:1}
);1.9:取出goods_id%5 == 1, 即,1,6,11,..这样的商品
db.goods.find({goods_id:{$mod:[5,1]}});1.10:取出有age属性的文档
db.stu.find({age:{$exists:1}});
含有age属性的文档将会被查出------------------------------------------------------
use shop
for(var i=0;i<10000;i++){db.bar.insert({_id:i++,title:'hello'+i});
}   //迅速在mongo里面插入10000条数据
db.bar.find().count();
------------------------------------------------------
游标cursor分页查询:
通俗的说,游标不是查询结果,而是查询的返回资源,或者接口.
通过这个接口,你可以逐条读取.就像php中的fopen打开文件,得到一个资源一样, 通过资源,可以一行一行的读文件.
</pre>

mongo04---基本查询相关推荐

  1. 数据结构与算法(C语言)

    第一章: 数据结构绪论 1.什么是程序:程序 = 数据结构 + 算法 2.逻辑结构&物理结构的区别用法 基本的目标就是将数据及其逻辑关系存储到计算机的内存中 一:逻辑结构: 逻辑结构是指数据对 ...

  2. mysql 快捷查询数据库各表占用空间,mysql查看索引占用空间,mysql查看数据占用空间

    先贴一张图! 第一步,"很重要" 在mysql中,有一个创建之初自带的库information_schema,这个库中包含着数据库相关信息,查询数据占用空间就是使用该库,所以首先进 ...

  3. mysql查询字段大小写结果相同,mysql大小写查询不敏感,mysql5.7查询不区分大小写解决方案。

    下面有两条sql,主键查询,在mysql中查询到的结果相同. SELECT* FROM USER WHEREid = 'EM58hdK4nXC';SELECT* FROM USER WHEREid = ...

  4. mybatis查询报错:com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from string

    mybatis查询报错: com.mysql.cj.exceptions.DataConversionException: Cannot determine value type from strin ...

  5. JPA不同包下同类名查询出错

    不同包下同类名查询出错 异常现象:使用JPA进行查询时,JPA的实体类映射到了另外一个包下的同名类,由于两个同名类中字段名和字段数不相同,所以会出现种种查询错误. 原因及对策:这里应该是jpa实体类默 ...

  6. 手把手教你JavaEE的分页查询、分页展示,有了这个,你的项目又多了一个谈资

    前言: 我们在写项目的时候,往往有一些项目的信息展示.而展示的数据量往往是很大的,这时候,加入一个分页的功能往往是最理想的选择. 先简单描述一下功能: 根据你的数据量和指定的页面展示数据条数,进行查询 ...

  7. 如何定位并优化慢查询Sql

    根据慢日志定位慢查询SQL. 查询慢日志相关变量,并进行设置: 主要关注下述三个变量: long_query_time.show_query_log_file.show_query_log 慢查询sq ...

  8. php错误提示如何查询,php-如何显示我的MySQLi查询错误?

    这个问题已经在这里有了答案: mysqli_fetch_assoc()期望参数/调用成员函数bind_param()错误. 如何获取并修复实际的mysql错误? 1个答案 mysqli还是死了,它必须 ...

  9. Redis 笔记(09)— 过期时间 expire(设置、查询、取消过期时间)

    1. 设置过期时间 Redis 使用 expire 命令设置一个键的过期时间,到时间后 Redis 会自动删除它.expire 命令的使用方法为 expire key seconds 其中 secon ...

  10. etcd 笔记(03)— etcd 客户端使用(键值的增、删、改、查)、watch监测键、lease使用(创建租约、撤销租约、刷新租期、查询租期)

    1. etcd 客户端 etcdctl 是一个命令行客户端,便于我们进行服务测试或手动修改数据库内容,etcdctl 在两个不同的 etcd 版本(v2 和 v3)下的功能和使用方式也完全不同. 一般 ...

最新文章

  1. 关于NB-IoT,没有比这篇更通俗易懂的啦!
  2. 基于WebGL架构的3D可视化平台—三维设备管理(ThingJS实现楼宇设备管理3D可视化)...
  3. 毕业后的第二个月的一点思绪
  4. SVN合并(merge)的使用
  5. MacOS安装react。问题 -- npm全局包的权限问题
  6. 1040. 有几个PAT(25
  7. IIS7配置PHP 报错 对找不到的文件启用文件监视
  8. 辗转相除法应用之倒C语言实现
  9. could not find a getter for ... in class ... 异常的解决
  10. 线和面的方程区别_直线方程和平面方程的区别
  11. 策略分享-基于海龟交易模型的优化 暂存
  12. 软件工程实践 Blog11
  13. 基于 SIP 的会议系统框架(草稿)
  14. 私有网段IP地址的划分
  15. nginx的安装和html部署问题
  16. C语言中常用到的几个与系统时间相关的结构体及其说明
  17. 将js中Ajax设置为同步请求
  18. DCDC基础(8)-- 同步BUCK芯片的电性能参数解读二
  19. postman 不安全网站_Postman amp; Proxy amp; Interceptor
  20. 一张图片换脸,三星AI最强换脸模型

热门文章

  1. Sysmon勘验、分析现场(主机监控)
  2. 【CVE-2020-1957】shiro搭配spring时身份验证绕过漏洞分析
  3. Python @staticmethod
  4. python多进程管道通信(精)
  5. 虚拟环境安装Scrapy框架
  6. poj1753 Flip Game(枚举Enum+dfs)
  7. .net大型分布式电子商务架构说明(转载来自头条)
  8. (转)Enterprise Architect 7.0入门教程
  9. RSA的加解密过程--(转自CSDN,学习用)
  10. 什么是标签?跟数据中台有什么关系?终于有人讲明白了