从nodejs中mongodb的两个不同集合中获取数据

Posted

技术标签:

【中文标题】从nodejs中mongodb的两个不同集合中获取数据【英文标题】:Get data from two different collections in mongodb in nodejs 【发布时间】:2019-01-13 01:14:13 【问题描述】:

我是 mongodb 数据库的新手,我想从两个不同的集合中获取数据(比如在 mysql 中使用连接),那么我们如何在 mongodb 中做到这一点?这是我的收藏数据

First collection 


    "id": "5b67dbf20b9f9d2830ccaf40",
    "title": "Some Text",
    "author": "John Doe"



Second collection 


    "id": "5b67dbyd48btr9jexya8ehd8",
    "pid": "5b67dbf20b9f9d2830ccaf40",
    "salary": "50000"

【问题讨论】:

请查看 $lookUp。参考链接:docs.mongodb.com/manual/reference/operator/aggregation/lookup How do I perform the SQL Join equivalent in MongoDB?的可能重复 【参考方案1】:

将您的NewSchema 更新为:

var NewSchema = mongoose.Schema(
    pid: 
            type: Mongoose.Schema.ObjectId,
            ref: `Firstcollection`
        
    );

您可以使用来自猫鼬的populate 解决它。

SecondCollection.find()
.populate('pid')
.exec(function(err, data) 
    console.log(data)
)

希望它能解决您的问题!!

【讨论】:

不工作,只显示第一个集合的记录,我想获取 id(第一个集合中的 id 和第二个集合中的 pid)匹配的数据 您到底想达到什么目标?您能否与相关数据和预期结果共享架构? @NehaGupta 如果上述查询不起作用,那么我认为您没有使用 ref 链接第一个和第二个集合。 我想从两个集合中获取记录。就是这样! 你能发布你的模型架构吗?

以上是关于从nodejs中mongodb的两个不同集合中获取数据的主要内容,如果未能解决你的问题,请参考以下文章

MongoDB:在一个查询中从不同的集合中获取文档

使用 nodejs 和 chartjs 从 mongodb 插入和获取值

我正在尝试使用 nodejs 从 mongodb 集合中检索数据,但我必须请求两次才能获得正确的信息

在spring boot中使用mongodb从两个集合中获取数据

NodeJS 和 MongoDB - 根据 id 数组获取对象

使用limit和skip从mongoDB中的两个集合中获取记录