Mongoose: aggregate聚合

p r o j e c t project 、 match 、 g r o u p group、 sort、 l i m i t limit、 skip、$lookup 表關聯html

$project

過濾表字段,只顯示錶中的下面三個字段markdown

db.order.aggregate([
    {
        $project: { order_id: 1, trade_no: 1, all_price: 1 }
    }
])
複製代碼

$match

匹配字段符合規則的app

db.order.aggregate([
    {
        $project: { order_id: 1, trade_no: 1, all_price: 1 }
    },
    {
        $match: { "all_price": { $gte: 90 } }
    }
])
複製代碼

$group

以某個字段進行分組 能夠統計字段之和spa

db.order_item.aggregate(
    [
        {
            $group: { _id: "$order_id", total: { $sum: "$num" } }
        }
    ]
)
複製代碼

$sort

以某個字段排序 -1降序 1升序code

db.order.aggregate([
    {
        $project: { trade_no: 1, all_price: 1 }
    },
    {
        $match: { "all_price": { $gte: 90 } }
    },
    {
        $sort: { "all_price": -1 }
    }

])
複製代碼

$limit

返回數據數量orm

db.order.aggregate([
    {
        $project: { trade_no: 1, all_price: 1 }
    },
    {
        $match: { "all_price": { $gte: 90 } }
    },
    {
        $sort: { "all_price": -1 }
    },
    {
        $limit: 1
    }

])
複製代碼

$skip

跳過幾條數據xml

db.order.aggregate([
    {
        $project: { trade_no: 1, all_price: 1 }
    },
    {
        $match: { "all_price": { $gte: 90 } }
    },
    {
        $sort: { "all_price": -1 }
    },
    {
        $skip: 1
    }

])
複製代碼

$lookup

表關聯查詢htm

db.order.aggregate([
    {
        $lookup:
        {
            from: "order_item",
            localField: "order_id",
            foreignField: "order_id",
            as: "items"
        }
    }
])
複製代碼
相關文章
相關標籤/搜索