redash 上写 mongodb 查询语句 语法

1、常用语法关键字

1.1、aggregate 聚合函数

语法看下面,基本都在聚合函数里写

1.2、group 分组

根据下单日期分组,注意分组后字段会只剩下分组字段和统计字段

{
	"collection": "order",       
	"aggregate": [
		    {
		    "$group": {
                "_id":{
                    "order_date":"$order_date"
                },
                "count":{"$sum":1}
            }		}  ]
}
1.3、match 筛选

筛选出 7天内下单的记录

{
"collection": "order",       
"aggregate": [
    {
        "$match": {
            "order_date": {
                "$gt": {
                    "$humanTime": "7 days ago"    
                }}
      } }  ]
}
1.4、lookup 连接表

通过 user_name 连接 user 表;
from 后接表名;
localField 后接 本表连接字段 (表 order 的字段)
foreignField 后接 外表连接字段 (表 user 的字段)
as 重命名(连接后会将数据当做一个字段,所以命名一下)

{
"collection": "order",       
"aggregate": [
    {
        "$lookup":{
                "from":"user",
                "localField":"order_by_user_name",
                "foreignField":"user_name",
                "as":"bc"
            } }  ]
}
1.5、unwind 展开、管道

一般使用 lookup连接表后 需要继续操作,因此使用管道对结果集继续操作;
unwind 后接的 即 上面 as 命名的 字段对象

{
            "$unwind":"$bc"
        },
1.6、addFields 加字段、重命名

由于连接表后字段数据都整合都 bc 中了,可以通过这样将其取出

{
            "$addFields": {
                "user_name": "$bc.user_name"
            }
        },
1.7、project 最终显示字段

最后你想要显示出来的,1显示 ,0不显示

{
            "$project":{
                "_id":0,
                "order_no":1,
                "order_date":1,
                "user_name":1
            }
        }
1.8、gt 大于、lt 小于

条件判断,常做筛选

{
            "$match":{
                "order_date":{
                "$gte": {"$humanTime" :"{{day_start}}"},
                "$lte": {"$humanTime" :"{{day_end}}"}}
            }
        }
1.9、humanTime 人类可读时间

大于7天前的日期,那就是7天内的

{
"collection": "order",       
"aggregate": [
    {
        "$match": {
            "order_date": {
                "$gt": {
                    "$humanTime": "7 days ago"    
                }}
      } }  ]
}
1.10、limit 分页

查找前 10 个; 另外 skip 可以填过多少个在查

{
    "collection": "userChargeEvent",       
    "aggregate": [
        
       {
           "$limit":10
       }
    ]
}
1.11、sort 排序

name 后接进行排序的字段,
direction 后参数为 1升序 ; -1 降序

{
		"$sort": [{
			"name": "order_date",
			"direction": -1
		}]
	}

注意 json 格式,这上面语法有点头疼……有问题可以留言交流。

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

#老程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值