大家好,欢迎来到IT知识分享网。
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 格式,这上面语法有点头疼……有问题可以留言交流。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/23554.html