- 1.find
- 1.1 查询参数
- 1.1.1第一个参数 是一个文档,指定查询条件,默认是{},匹配全部。
- 1.1.2第二个参数 指定想要的键 db.users.find({},{"age":0,"username":1}) :age不显示,username显示
- 1.2 查询条件
- 1.2.1多条件:db.users.find({"age":27,"username":"joe"})
- 1.2.2 (>) 大于 - $gt ,(<) 小于 - $lt ,(>=) 大于等于 - $gte , (<= ) 小于等于 - $lte , (!= ) 不等于"$ne"
- 获取"col"集合中 "likes" 大于100,小于 200 的数据: db.col.find({likes : {$lt :200, $gt : 100}})
- 1.2.3 or查询有两种方式:一种是用$in来查询一个键的多个值,另一种是用$or来完成多个键值的任意给定值。$in相当于SQL语句的in操作。
- $nin:返回与数组中所有条件不匹配的文档。
- $not与正则表达式联合使用时候极其有用,用来查询哪些与特定模式不匹配的文档。
- $exists操作符允许返回一个特定的对象。注意:当前版本$exists是无法使用索引的,因此,使用它需要全表扫描。
- 1.3正则表达式
- $all 通过多个元素来匹配数组
- $size操作符允许对结果进行筛选,匹配特定长度的数组。
- $slice相当于数组函数的切片,检索一个数组文档并获取数组的一部分。限制集合中大量元素节省带宽。理论上可以通过 limit() 和 skip() 函数来实现,但是,对于数组就无能为力了。 $slice可以指定两个参数。第一个参数表示要返回的元素总数。第二个参数是可选的。如果使用的话,第一个参数定义的是偏移量,而第二个参数是限定的个数。第二个参数还可以指定一个负数。
- $elemMatch同时使用查询条件中的语句与一个数组元素进行比较,不匹配费数组元素;
- $where
- $mod取摸操作。
- $type操作符允许基于BSON类型来匹配结果。
- 1.4游标
- 1.5limit、skip、sort
- sort 排序 1升序 -1 降序 db.c.find().sort({username:1,age:-1})
- limit 限制结果数量
- skip略过前n个匹配的文档