Node.js 使用mongoose和NodeJS在MongoDB中嵌套查询

Node.js 使用mongoose和NodeJS在MongoDB中嵌套查询,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我使用这两个集合,我需要使用第一个集合中的参数从其中一个集合进行查询 收集样本: Collection 1 :{ id: 1234, lastDate : "2020-09-10T08:30:14.960+00:00" } Collection 2 :{ site : 1234, date : "2020-09-10T08:30:14.960+00:00" } 我需要从集合1中获取id和lastDate,并使用它查询集合2 抱歉解释不好,如果需要更多信

我使用这两个集合,我需要使用第一个集合中的参数从其中一个集合进行查询

收集样本:

Collection 1 :{
id: 1234,
lastDate : "2020-09-10T08:30:14.960+00:00"
}

Collection 2 :{
site : 1234,
date : "2020-09-10T08:30:14.960+00:00"
}
我需要从集合1中获取id和lastDate,并使用它查询集合2

抱歉解释不好,如果需要更多信息或其他信息,请告知

添加了SQL等效项

从collection2中选择* 其中站点位于从collection1和中选择id 从collection1中选择lastDate中的日期;
如果您已经对第一个集合进行了引用,那么您可以使用简单查询,即

const query = await Collection1.findOne({id: req.params.id}).populate('site lastDate');

我邀请您阅读更多有关

的信息,我在每个收藏中都有一个以上的。。。这只是一个文档的示例…您从集合1获取多个文档,然后您将与集合2匹配?我将从两个集合获取多个文档我需要集合2中的数据,集合一是查询参数我想你不理解我是我的错不是你的我会尽量说清楚,我需要获得所有ID和lastDate,并将它们与集合2上的站点和日期进行比较。我有一个sql查询,我认为假设在sql中也有同样的查询,我比mongo更了解sql,因此更容易这样演示:在原始posttry me代码中添加,它将返回集合1中所有匹配的数据。然后我做了一个查找连接与第二收集日期。其中第一次收集的日期将与第二次收集的文档相匹配。我需要第二次收集的日期与最后一次收集的日期相同。。。当然,我也需要和你一样。填充将返回任何已尝试此操作的popaple LastDate。。。这将提供来自两个集合的数据我只需要来自collection2i已使用site将查询更新为group data,这样您将只需要站点
const query = await Collection1.findOne({id: req.params.id}).populate('site lastDate');
 db.FIRST_COLLECTION.aggregate([
  {
    $lookup: {
      from: "FIRST_COLLECTION",
      localField: "id", // local field of first collection
      foreignField: "site", // foreign field at second collection
      as: "liste",
    },
  },
  { $unwind: "$liste" },
  {
    $group: {
      _id: "$site",
      data: {
        $addToSet: {
          site: $site,
          date: $date,
        },
      },
    },
  },
]);