返回顶部
首页 > 资讯 > 数据库 >MongoDB中有什么简单办法做多字段join
  • 288
分享到

MongoDB中有什么简单办法做多字段join

2024-04-02 19:04:59 288人浏览 薄情痞子
摘要

mongoDB中有什么简单办法做多字段join,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JOIN 在 sql 是中很基本的运算,但 M

mongoDB中有什么简单办法做多字段join,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

JOIN 在 sql 是中很基本的运算,但 MonGoDB 却没有直接提供,要用 $lookup 对付,但对多个字段关联时就很麻烦。比如这一段:

db.getCollection(‘c1’).aggregate([
{
    $lookup:
        {
          from: “c2”,
          localField: “user1”,
          foreignField: “user1”,
          as: “R”
        }
}, 
{$unwind :“$R”},
{
     $project: {
         user1:1,
         user2:1,
         income:1,
         output:‘$R.output’,
         mid: {$cond: [ { $eq: [ ‘$user2’, ‘$R.user2’] }, 1, 0 ] }
     }
},
{$match : { “$and”: [
        {mid : 1},
        {income:{ $gte: 0.30}}
        ]
  }}
])

       也就是相当于 SELECT S.* FROM C1 S LEFT JOIN C2 R ON S.user1 =R.user1 AND S.user2 =R.user2 WHERE R.income>0.30 这句简单的 SQL。

       因为 $lookup 仅支持单字段条件,多字段关联要用 $unwind 将数据拆分,再用 $project: 获取字段,还要用把关联条件拼到过滤条件,整个过程都很繁琐。

       如果有集算器协助 MongoDB, 这件事就非常简单, 关键代码只要一句(比 SQL 还简单):


A
1=mongo_open("mongodb://127.0.0.1:27017/test")
2=mongo_shell(A1,"c1.find()").fetch()
3=mongo_shell(A1,"c2.find()").fetch()
4=A2.join(user1:user2,A3:user1:user2,output).select(income>0.30)
5>A1.close()

       集算器 SPL 不仅对解决 JOIN,对 MongoDB 很多困难的计算都有帮助,可以参考 辅助 MongoDB 计算。
       SPL 也能很方便地嵌入到 JAVA 应用

关于MongoDB中有什么简单办法做多字段join问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网数据库频道了解更多相关知识。

您可能感兴趣的文档:

--结束END--

本文标题: MongoDB中有什么简单办法做多字段join

本文链接: https://lsjlt.com/news/61371.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MongoDB中有什么简单办法做多字段join
    MongoDB中有什么简单办法做多字段join,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。JOIN 在 SQL 是中很基本的运算,但 M...
    99+
    2024-04-02
  • mysql中distinct多个字段去重的方法是什么
    在MySQL中,可以使用GROUP BY子句来实现多个字段的去重。具体的语法如下: SELECT DISTINCT colu...
    99+
    2024-04-09
    mysql
  • SAP MM 采购单据的屏幕布局配置中字段选择值“$$$$”有什么用处
    这篇文章将为大家详细讲解有关SAP MM 采购单据的屏幕布局配置中字段选择值“$$”有什么用处,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。SAP MM 采购单据的屏幕布局配置中字段选择值“...
    99+
    2023-06-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作