• MongoDB 学习笔记之 Aggregation Pipeline实战实现inner join


     Aggregation Pipeline实战实现inner join:

     leftT集合:

     comments集合:

    现在我们要用aggregation实现inner join

    db.comments.aggregate([{
    $lookup:
    {
    from:"leftT",
    localField:"timestamp",
    foreignField:"timestamp",
    as: "timestampCol"
    }},
    {$unwind: "$timestampCol"},
    {$project: {"ratingEQ": {"$eq": ["$rating", "$timestampCol.rating"]}, "timestamp" : 1, "rating" : 1,  "timestampCol.timestamp": 1}},
    {$match: {"ratingEQ":true}}
    ])

    是不是很神奇?

    步骤解析:

    1. $lookup:实现timestamp的等值连接,相等的leftT结果被放在timestampCol集合中
    2. $unwind:实现把leftT数组拉平,出现多条
    3. $project:实现对第二个等值连接rating的判断,并放在ratingEQ字段中
    4. $match:只取ratingEQ是true,说明第二个rating字段相等
  • 相关阅读:
    Web API总结
    @Html.Raw() 方法输出带有html标签的字符串
    jQuery
    图与树基础-完全图的判定
    图和树基础-蒜头君旅行
    PAT乙级1008
    PAT乙级1007
    PAT乙级1005
    PAT乙级1001
    前端工程化-webpack简介(一)
  • 原文地址:https://www.cnblogs.com/AK47Sonic/p/7496750.html
Copyright © 2020-2023  润新知