码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2020-07-02 13:38:47      阅读:72      评论:0      收藏:0      [点我收藏+]

标签:pre   匹配   倒序   min   foreign   key   官方   zhang   ODB   

项目里使用了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复杂查询

标签:pre   匹配   倒序   min   foreign   key   官方   zhang   ODB   

原文地址:https://www.cnblogs.com/godlovesme/p/13223886.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!