MongoDB(2): 查询、索引、聚合

查询 find

  1. 条件操作符1
    $gt、$lt、$gte、$lte
  2. 条件操作符2
    $type:[key]
可选的 key 值如下:

1: 双精度型(Double)
2: 字符串(String)
3: 对象(Object)
4: 数组(Array)
5: 二进制数据(Binary data)
7: 对象 ID(Object id)
8: 布尔类型(Boolean)
9: 日期(Date)
10: 空(Null)
11: 正则表达式(Regular Expression)
13: JS 代码(Javascript)
14: 符号(Symbol)
15: 有作用域的 JS 代码(JavaScript with scope)
16: 32 位整型数(32-bit integer)
17: 时间戳(Timestamp)
18: 64 位整型数(64-bit integer)
-1: 最小值(Min key)
127: 最大值(Max key)

db.collections.find({"name":{$type:2}}  # 查找name是字符串的记录
  1. limt()和skip()
db.collections.find().limit(1).skip(1)
  1. MongoDB排序sort()
    db.collection.find().sort({key:1|-1})
    1升序,-1降序
db.collection.find().sort({"time":1})

索引

db.collection.createIndex(keys, options)
索引是数据库集合中一个文档或多个文档的值进行排序的一种结构,默认情况下集合的_id字段会被添加索引。
db.col.createIndex({"title":1,"description":-1})
options:
1.background: 创建索引过程是否会阻塞其它操作,默认为False后台方式创建,不影响其它
2.unique:是否为唯一索引
3. name:索引名词

索引操作:

  1. 查看集合索引:db.col.getIndexes()
  2. 查看集合索引大小:db.col.totalIndexSize()
  3. 删除集合所有所引:db.col.dropIndexes()
  4. 删除集合指定索引:db.col.dropindex(name)

聚合

db.collections.aggregate({管道:{表达式}})

常用管道命令

$project:修改输入文档的结构
$match:过滤数据
$limit:
$skip
$group
$sort
$geoNear

常用表达式

$sum, $avg, $min, $max, $first, $last
$push 将值加入一个数组中,
$addToSet将值加入一个数组中,会判断是否有重复的值,若相同的值在数组中已经不存在了则不加入

db.col.aggregate({$group:{_id:$by_col_name, total:{$sum:$col_name})
# _id为必须字段,表示按哪个字段分组

posted @ 2022-09-29 23:12  店里最会撒谎白玉汤  阅读(56)  评论(0编辑  收藏  举报