如何通过聚合连接mongoDB中的两个表并需要根据匹配获取结果[重复]
Posted
技术标签:
【中文标题】如何通过聚合连接mongoDB中的两个表并需要根据匹配获取结果[重复]【英文标题】:How to join two tables in mongoDB with aggregation and need to get result based on match [duplicate] 【发布时间】:2019-05-16 09:23:45 【问题描述】:我想在 mongoDB 中加入两个表。我有 表 1) 位置
"_id" : ObjectId("5c0f5d16e32f1fe49e648ac8"),
"device_time" : "2018-11-30 10:48:44",
"l_created_date" : "2018-11-30 10:49:18",
"ignition_status" : "1",
"longitude" : "80.175472",
"no_of_satellites" : 9,
"latitude" : "12.938165",
"speed" : "12",
"box_status" : "0"
table-2) 纬度
"_id" : ObjectId("5c11083daeb33b4d1175fbd2"),
"full_address" : "CH023 , Guindy Nagar , 6th St , Sriram Nagar , Ramapuram , Mumbai , MHA , 560254 , India",
"latitude" : "14.0275279",
"longitude" : "81.1821585",
"__v" : 0
我想根据纬度加入两个表,以便聚合后我可以得到左表记录以及匹配条件。
有人可以帮我解决这个问题吗?
【问题讨论】:
【参考方案1】:$lookup 聚合管道用于加入两个 Mongo 集合。使用 $lookup 您可以获得所需的结果。检查此查询一次:
db.location.aggregate([
$lookup:
from: "latlong",
localField: "latitude",
foreignField: "latitude",
as: "latitude_data"
])
此外,您可以通过添加 $project 阶段继续填写必填字段。
【讨论】:
感谢您的快速回复。我正在寻找匹配和查找。我做了同样的事情,但我得到了正确的表格匹配数据。但是我也想要基于相同条件的左表数据。 你能发布你想要的确切收集数据吗?以上是关于如何通过聚合连接mongoDB中的两个表并需要根据匹配获取结果[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL:加入表并根据另一列上的聚合函数从一行返回一列[重复]
如何使用 MongoDB 聚合管道从集合中的两个子文档中返回最小值?
聚合函数在页面刷新时复制 ng-repeat 中的项目。需要弄清楚如何停止重复。 Angularjs Mongodb mongoose