从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的两个不同集合中获取数据的主要内容,如果未能解决你的问题,请参考以下文章
使用 nodejs 和 chartjs 从 mongodb 插入和获取值
我正在尝试使用 nodejs 从 mongodb 集合中检索数据,但我必须请求两次才能获得正确的信息
在spring boot中使用mongodb从两个集合中获取数据