MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

MongoDB中的$sort 、$limit 、$skip、$unwind

 $sort  (排序)

     · 将输入的文档排序后输出

    MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

   $sort:{counter:-1}    :    按照counter 进行排序,值为-1是降序,值为1是升序

 $limit   (即取前多少个)

   · 限制聚合管道返回的文档数

  MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

     注意   :   如果$limit、$skip  都要使用的话,先写skip  然后写limit

 $skip    (跳过多少个开始查询)  

    · 跳过指定数量的文档,并返回余下的文档

MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

 $unwind    (按照某个字段进行拆分)

 · 将文档中的某一个数组类型字段拆分成多条,每条包含数组中的一个值

 · 语法  :  db.集合名称.aggregate({$unwind:"$字段名称"})

   MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

当我们按照某个字段进行拆分的时候,有的数据里面没有这个字段,查找的时候就会忽略掉这个字段

 例如:     只查到有size的字段,其他的字段被忽略了MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

还有如果size的属性有null时,也会被忽略掉,防止这这种情况

并且如果还需要其他的字段,有一个属性

属性preserveNullAndEmptyArrays值为false表示丢弃属性值为空的文档

属性preserveNullAndEmptyArrays值为true表示保留属性值为空的文档

MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)

加上preserveNullAndEmptyArrays 属性之后,值就不会丢失了

MongoDB(6.mongodb的聚合操作以及高级查询3、排序等)