MongoDB中几个关键字

时间:2023-01-03 12:07:08




db.stu.aggregate([


//按照{xx:xx}中的内容进行匹配


{$match:{age:{$gt:20}}},




对于{$group:{_id:xxx,}}格式的分组,含义为该管道为分组,_id是固定写法,对应的值即为要分组的字段
,group对应的value值里的每个key(除了_id)都可以是自定义,但是值必须从表中来
{$group:{_id:'$gender',counter:{$sum:1},docs:{$push:'$$ROOT'}}},




//投影,表达式内的内容为想要显示的值:1,  隐藏的值:0
{$project:{_id:0,counter:1}}




//按照_id指定的对应列进行降序排序
{$sort:{_id:-1}},


//与db.stu.find().skip()用法一样.不同点在于limit()函数中skip和limit位置不交换
{$skip:1},


//与上面连在一起的含义是,跳过多少个,然后取多少个
{$limit:1}






])
原数据:
{
    "_id" : 1.0,
    "item" : "t-shirt",
    "size" : [ 
        "S", 
        "M", 
        "L"
    ]
}




// unwind相当于把前边聚合起来的数据再按照配置的规则重新拆分开
db.t2.aggregate([
    {$unwind:'$size'}
])


/* 1 */
{
    "_id" : 1.0,
    "item" : "t-shirt",
    "size" : "S"
}


/* 2 */
{
    "_id" : 1.0,
    "item" : "t-shirt",
    "size" : "M"
}


/* 3 */
{
    "_id" : 1.0,
    "item" : "t-shirt",
    "size" : "L"
}






db.t2.aggregate([
    {$unwind:{path:'$size',preserveNullAndEmptyArrays:true}
        }
])