zoukankan      html  css  js  c++  java
  • MongoDB--$project和$push的区别

    正文开始前,首先需要表名几条定义:

    聚合(aggregate)是基于数据处理的聚合管道,每个文档通过一个由多个阶段(stage)组成的管道,可以对每个阶段的管道进行分组、过滤等功能,然后经过一系列的处理,输出相应的结果

    语法:db.集合名称.aggregate({管道:{表达式}})

    $project是常用的管道命令之一:修改输⼊⽂档的结构,如重命名、增加、删除字段、创建计算结果

    $push是常用的表达式之一:在结果⽂档中插⼊值到⼀个数组中,数据透视

    接下来用这个集合作为事例来分析二者的区别: 


    > db.car.find()
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30f8"), "carname" : "大众", "color" : "red", "price" : 120 }
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30f9"), "carname" : "奔弛", "color" : "bule", "price" : 400000 }
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30fa"), "carname" : "宝马", "color" : "green", "price" : 300000 }
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30fb"), "carname" : "奔弛", "color" : "red", "price" : 600000 }
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30fc"), "carname" : "大众", "color" : "yellow", "price" : 100 }
    { "_id" : ObjectId("5c2ec81a1590d9e9886e30fd"), "carname" : "大众", "color" : "yellow", "price" : 120 }

    $project:

    db.car.aggregate(
    {$project:{_id:0,carname:1}}
    )

    //_id字段默认为1是显示状态,不需显示用0表示,   其他字段默认为不显示

    显示效果为:

    $push:

    db.car.aggregate(
    {$group:{_id:null,name:{$push:'$carname'}}}
    )

    //_id:null 表示不指定分组的字段

     显示效果为:

  • 相关阅读:
    Apple Developer Program Roles Overview
    iOS 使用UIView的一种有效方法
    百度面试(转)
    iOS 冒泡排序
    iOS 面试题及答案
    iOS 开发进程与线程
    iOS 应用内跳转到appstore里下载
    iOS 使用封装的NSLog来打印调试信息
    iOS 并发编程指南
    苹果App Store审核指南中文翻译(2014.9.1更新)
  • 原文地址:https://www.cnblogs.com/lutt/p/10226011.html
Copyright © 2011-2022 走看看