mongodb

MongoDB 数据库查询,每个符号内部常用的符号进行一些简单的讲解:

$match:通常和 $aggregate 一起使用,表示筛选出满足条件的文档。

 内部常用的符号有:$eq:表示等于。$ne:表示不等于。$gt:表示大于。$gte:表示大于等于。$lt:表示小于。$lte:表示小于等于。$in:表示匹配多个值中的任意一个。$nin:表示不匹配多个值中的任意一个。$and: 逻辑与 (表示多个条件同时满足。)$or: 逻辑或 (表示多个条件中满足任意一个即可。)$not: 逻辑非$regex: 正则表达式

$project:表示查询结果中需要展示的字段,并可以对查询结果进行计算、转换等操作。

内部常用的符号有:$add:表示加法。$subtract:表示减法。$multiply:表示乘法。$divide:表示除法。$mod:表示取模。$concat: 连接字符串$substr: 截取字符串$toUpper: 转换为大写$toLower: 转换为小写$dateToString: 将日期转换为字符串$isArray: 判断是否为数组$size: 获取数组长度$cond:表示条件语句,根据条件返回不同的结果。$ifNull:表示如果字段值为空,则返回指定的默认值。$arrayElemAt:表示返回数组中指定索引位置的元素。

$group:表示对文档进行分组操作,并可以在分组内对数据进行计算、统计等操作。

内部常用的符号有:$sum:表示求和。$avg:表示求平均值。$min:表示求最小值。$max:表示求最大值。$push:表示将字段值添加到一个数组中。$addToSet:表示将字段值添加到一个集合中,集合中的元素不重复。$first:表示返回分组中第一个文档的指定字段值。$last:表示返回分组中最后一个文档的指定字段值。$count: 统计数量

$sort:表示对查询结果进行排序操作

内部常用的符号有1:表示升序。-1:表示降序。$asc: 升序排列$desc: 降序排列

$limit:表示限制查询结果返回的文档数量,内部没有其他符号。

$skip:表示跳过指定数量的文档,内部没有其他符号。

$unwind:表示将一个包含数组的字段拆分成多个文档进行操作,

$path: 拆分数组字段的路径$preserveNullAndEmptyArrays: 是否保留空数组或不存在的字段

$lookup:表示在另一个集合中查找符合条件的文档并返回,通常和 $unwind 结合使用。

内部常用的符号$from: 要查询的集合$localField: 当前集合中的字段$foreignField: 要查询集合中的字段$as: 输出结果集中的字段名

当然,这只是每个符号内部常用的一些符号,MongoDB提供了非常多的查询符号和操作符,具体使用根据实际情况而定。

案例详解

下面是对每个符号的详细讲解

1.$match: 这个符号用于对数据进行筛选,类似于SQL中的WHERE语句。
m a t c h 后面可以跟一个查询条件,只有符合条件的文档才会被保留。例如:match后面可以跟一个查询条件,只有符合条件的文档才会被保留。例如:match后面可以跟一个查询条件,只有符合条件的文档才会被保留。例如:$match: { platform: “android” } 表示只保留 platform 字段为 “android” 的文档。

2.$group: 这个符号用于分组聚合操作,类似于SQL中的GROUP BY语句。
$group可以根据某个字段的值来将文档分组,然后对每组文档执行聚合操作,
例如求和、计数、平均值等等。
例如:例如:例如:group: { _id: “$platform”, count: { $sum: 1 } } 表示按照 platform 字段进行分组,然后统计每组文档的数量。

3.$ p r o j e c t : 这个符号用于对文档中的字段进行投影操作,类似于 S Q L 中的 S E L E C T 语句。可以选择保留或者去除某些字段,也可以添加一些新的计算字段。例如:project: 这个符号用于对文档中的字段进行投影操作,类似于SQL中的SELECT语句。 可以选择保留或者去除某些字段,也可以添加一些新的计算字段。例如:project:这个符号用于对文档中的字段进行投影操作,类似于SQL中的SELECT语句。可以选择保留或者去除某些字段,也可以添加一些新的计算字段。例如:project: { platform: 1, version: 1, isNew: { $cond: { if: { g t e : [ “gte: [ “gte:[createdAt”, ISODate(“2022-01-01”) ] }, then: true, else: false } } } 表示只保留 platform 和 version 两个字段,同时计算出 isNew 字段,如果文档的 createdAt 字段大于等于 2022 年 1 月 1 日,则 isNew 为 true,否则为 false。

4.$ s o r t : 这个符号用于对文档进行排序操作,类似于 S Q L 中的 O R D E R B Y 语句。可以根据某个字段的值来对文档进行排序,可以选择升序或降序。例如:sort: 这个符号用于对文档进行排序操作,类似于SQL中的ORDER BY语句。可以根据某个字段的值来对文档进行排序,可以选择升序或降序。例如:sort:这个符号用于对文档进行排序操作,类似于SQL中的ORDERBY语句。可以根据某个字段的值来对文档进行排序,可以选择升序或降序。例如:sort: { createdAt: -1 } 表示按照 createdAt 字段进行降序排序。

5.$ s k i p : 这个符号用于跳过指定数量的文档,类似于 S Q L 中的 O F F S E T 语句。例如:skip: 这个符号用于跳过指定数量的文档,类似于SQL中的OFFSET语句。例如:skip:这个符号用于跳过指定数量的文档,类似于SQL中的OFFSET语句。例如:skip: 10 表示跳过前面的 10 个文档。

6.$ l i m i t : 这个符号用于限制返回文档的数量,类似于 S Q L 中的 L I M I T 语句。例如:limit: 这个符号用于限制返回文档的数量,类似于SQL中的LIMIT语句。例如:limit:这个符号用于限制返回文档的数量,类似于SQL中的LIMIT语句。例如:limit: 20 表示只返回前面的 20 个文档。

7.$ u n w i n d : 这个符号用于展开数组字段,将数组中的每个元素都展开成一个单独的文档。例如:unwind: 这个符号用于展开数组字段,将数组中的每个元素都展开成一个单独的文档。例如:unwind:这个符号用于展开数组字段,将数组中的每个元素都展开成一个单独的文档。例如:unwind: “$tags” 表示将 tags 字段中的数组展开成多个文档。

8.$lookup: 这个符号用于对另外一个集合进行关联查询操作,类似于SQL中的JOIN语句。可以根据某个字段的值在另外一个集合中查找匹