核心:
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不等于3
shop_price:{$gt:1000}, //shop_price大于1000
shop_price:{$lte:100}}, //低于或等于
market_price:{$in:[4,11]}, //4或者11
goods_name:"KD876", //goods_name="KD876"
$and:
[
{shop_price:{$gt:100}},{shop_price:{$lt:1000}}
], //价格介于100--
},
{
cat_id:1, //查cat_id,goods_name列,不查_id
goods_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. 使用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. 如何使用Visual Studio 2008(VS2008)编译C语言

    大家在学习C语言的时候接触的一般都是VC6.0.但是VC6.0只能编译C或者C++,不支持C#,集成度不是很高.而且界面并不十分友好,不能自动猜测关键字,函数的参数也不能自动标示.最关键的是,编译的时 ...

  2. Android学习2013年10月11日

    1.LinearLayout http://www.cnblogs.com/salam/archive/2010/10/20/1856793.html LinearLayout是线性布局控件,它包含的 ...

  3. MySQL语句之or和and多条件查询

    在where中可以包含任意数目的and和or操作符,需要注意的是在没有任何其他符号的时候,例如括号,AND的优先级高于OR,因此,当两者一起使用时,先运算AND两边的条件表达式,再运算OR两边的条件表 ...

  4. docker改变镜像源

    sudo echo “DOCKER_OPTS=\”\$DOCKER_OPTS –registry-mirror=http://your-id.m.daocloud.io -d\”” >> ...

  5. 跳石头(codevs 4768)

    题目描述 Description 一年一度的“跳石头”比赛又要开始了! 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有N ...

  6. [NOIP2003] 提高组 洛谷P1038 神经网络

    题目背景 人工神经网络(Artificial Neural Network)是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷款风险评估等诸多领域有广泛的应用.对神经网络的研究一直是当今 ...

  7. centos 中找不到 php-config

    两种解决方式: 1.CentOS6 PHP extension install: Cannot find php-config. Please use --with-php-config=PATH 2 ...

  8. ACM-ICPC 2018 沈阳赛区网络预赛 G 容斥原理

    https://nanti.jisuanke.com/t/31448 解析 易得an=n*n+n O(1)得到前n项和  再删除与m不互素的数  我们用欧拉函数求出m的质因数  枚举其集合的子集 进行 ...

  9. 免费SSL申请

    https://letsencrypt.org/ https://letsencrypt.org/docs/client-options/ ACMESharp (.NET, PowerShell) w ...

  10. 2017-10-04-afternoon

    注意完全平方数统计时的特判 #include <cstdio> inline void read(int &x) { x=; register char ch=getchar(); ...