6月27号实训报告——Mongodb复杂查询

Posted godlovesme

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6月27号实训报告——Mongodb复杂查询相关的知识,希望对你有一定的参考价值。

项目里使用了Mongodb作为数据库,不同于mysql,这是一个非关系型数据库,因此不能使用SQL
下面是我对NoSQL的学习
条件查询
第一个花括号

查找全部

db.users.find()

复制代码
精准查找

 db.users.find({"name":"zhangsan"})

复制代码
精准查找

 db.users.find({"name":"zhangsan"})

复制代码

,>=,<,<= 查找

大于     :  db.users.find({"name":{$gt:"q"}})
大于等于 :  db.users.find({"name":{$gte:"q"}})
小于     :  db.users.find({"name":{$lt:"q"}})
小于等于 :  db.users.find({"name":{$lte:"q"}})

复制代码
多个条件并且关系 查找

db.users.find({"name":"zhangsan","age":20})       //不同key
db.users.find({"age":{$gte:25,$lte:28}})          //相同key

复制代码
多个条件或许关系 查找

db.users.find({ $or:[{age:24},{age:28}]   })

复制代码
模糊查询

模糊查询   :  db.article.find({"title":/女装/})
以什么开头 :  db.users.find({title:/^女装/})

复制代码第二个花括号

查询指定列

单列 :  db.users.find({},{name:1})
多列 :  db.users.find({age:{$gte:25}},{name:1,age:1})

复制代码功能

排序

正序 : db.users.find({},{}).sort({age:1})
倒序 : db.users.find({},{}).sort({age:-1})

复制代码
限制

查询前五条数据            :  db.users.find({},{}).limit(5)
跳过两条,查询后面三条数据  :  db.users.find({}).skip(2).limit(3)
分页方法                  :  分页  skip-1 * limit

复制代码
统计

db.users.find({ age:{$gte:24} }).count()

复制代码高级查询 aggregate

Aggregation 管道操作符与表达式

管道操作符
Description

$project
查询字段进行筛选

$match
条件匹配。只满足条件的文档才能进入下一阶段

$limit
限制结果的数量

$skip
跳过文档的数量

$sort
条件排序

$group
条件进行分组和统计

$lookup
$lookup 操作符 用以引入其它集合的数据(表关联查询)

SQL 和 和 NOSQL 对比

SQL
NOSQL

SELECT
$project

WHERE
$match

GROUP BY
$group

HAVING
$project

ORDER BY
$sort

LIMIT
$limit

SUM()
$sum

COUNT()
$sum

join
$lookup

每个管道表达式 看上面官方图,$group中的求和表达式。

常用表达式操作符
Description

$addToSet
将文档指定字段的值去重

$max
文档指定字段的最大值

$min BY
文档指定字段的最小值

$sum
文档指定字段求和

$multiply
文档指定两个字段求乘

$avg BY
文档指定字段求平均

$gt
大于给定值

$lt()
小于给定值

$eq()
等于给定值

聚合管道格式

    db.order.aggregate([
      {
        $project:{ trade_no:1, all_price:1 }
      },
      {
        $match:{"all_price":{$gte:90}}
      },
      {
        $limit:1
      },
      {
        $skip:1
      },
      {
        $sort:{"all_price":-1}
      },
      {
        $group :{_id:"$order_id",totalNum:{$sum:"$num"},totalPrice: { $sum: { $multiply: [ "$price", "$num" ] } }  }
      },
      {
        $lookup:
          {
            from: "order_item",
            localField: "order_id",
            foreignField: "order_id",
            as: "items"
          }
      }
    ])






































以上是关于6月27号实训报告——Mongodb复杂查询的主要内容,如果未能解决你的问题,请参考以下文章

6月26号实训报告——使用docker构建镜像并进行分布式部署

计算机实训报告范文5篇

网页设计实训总结心得6篇(2)

实训--mybatics--之模糊查找-concat

2022 MongoDB数据与创新报告: 复杂基础架构阻碍企业创新,数据是构建应用程序的最大痛点

大数据外出实训报告9