带有连接操作的MySQL查询转换为MongoDB

带有连接操作的MySQL查询转换为MongoDB,mongodb,Mongodb,我需要将下面的mysql查询转换为mongo。我们将非常感谢您的帮助 SELECT f.Datetime, c.Air Temperature(Celcius),f.Surface Temperature(Celcius) FROM firedata f JOIN climatedata c ON f.Date = c.Date where f.Confidence > 80 and f.Confidence < 100; 从firedata f JOIN climatedata

我需要将下面的mysql查询转换为mongo。我们将非常感谢您的帮助

SELECT f.Datetime, c.Air Temperature(Celcius),f.Surface Temperature(Celcius) FROM firedata f JOIN climatedata c ON f.Date = c.Date where f.Confidence > 80 and f.Confidence < 100;
从firedata f JOIN climatedata c中选择f.日期时间、c.气温(摄氏度)、f.表面温度(摄氏度),f.日期=c.日期,其中f.置信度>80,f.置信度<100;

在MongoDB中,连接的数据要么嵌套在单个文档中(在这种情况下,您不需要连接),要么嵌套在不同的文档中,您最好的选择是聚合框架,特别是“查找”管道阶段

在不了解任何一种实现的更多细节的情况下,它将类似于:

fireDataCollection.aggregate([
    { 
       $match: {
          $and: [
            { "Confidence": { $gt: 80 } },
            { "Confidence": { $lt: 100 } }
          ]
       }           
    },
    {
       $lookup: {
          from: "climateDataCollection",
          localField: "Date",
          foreignField: "Date",
          as: "Climate"
       }
    },
    {
      $unwind: "$Climate"
    }
])

$unwind步骤是可选的,它会将“气候”字段(在查找之后将是与firedata中的日期匹配的每个气候的集合)转换为多个文档,每个文档只包含一个嵌套的“气候”文档

您能显示表的模式吗?对于这里的问题,简单地要求直接的SQL翻译并不是有效的。这两种类型的数据库引擎有很大的不同,因此,实际上您“应该”改变结构,而不是试图使用MongoDB“就像我对SQL数据库所做的那样”。它们根本不一样,因此代码不相关。相反,显示您所拥有的数据和您需要使用该数据的预期查询模式,以及您期望实现的结果。