MongoDB 的高階查詢 aggregate 聚合管道
阿新 • • 發佈:2020-09-13
MongoDB Aggregation 管道操作符與表示式
$project
要求查詢 order 只返回文件中 trade_no 和 all_price 欄位 db.order.aggregate([ { $project:{ trade_no:1, all_price:1 } } ])
$match
用於過濾文件。用法類似於 find() 方法中的引數。 db.order.aggregate([ { $project:{ trade_no:1, all_price:1 } }, { $match:{"all_price":{$gte:90}} } ])
$group
將集合中的文件進行分組,可用於統計結果。 統計每個訂單的訂單數量,按照訂單號分組 db.order_item.aggregate( [ { $group: {_id: "$order_id", total: {$sum: "$num"}} } ])
$sort
將集合中的文件進行排序。 db.order.aggregate([ { $project:{ trade_no:1, all_price:1 } }, { $match:{"all_price":{$gte:90}} }, { $sort:{"all_price":-1} } ])
$limit
db.order.aggregate([ { $project:{ trade_no:1, all_price:1 } }, { $match:{"all_price":{$gte:90}} }, { $sort:{"all_price":-1} }, { $limit:1 } ])
$skip
db.order.aggregate([ { $project:{ trade_no:1, all_price:1 } }, { $match:{"all_price":{$gte:90}} }, { $sort:{"all_price":-1} }, { $skip:1 } ])