MongoDB 使用aggregate做join连接 并保留第一个join结果(二)
程序员文章站
2022-05-08 16:10:02
...
db.主表.aggregate([
{
"$lookup": {
"localField": "主键",
"from": "从表",
"foreignField": "外键",
"as": "结果集字段名称a"
}
}
,
{
"$project": {
"_id": 0,
"id": 1,
"type": 1,
"startNode": 1,
"startKeyNo": 1,
"endKeyNo": 1,
"endNode": 1,
"role": 1,
"结果集字段名称a": {
$slice: ["$结果集字段名称a", 1]
}
}
}
,
{
"$unwind": "$结果集字段名称a"
}
,
{
$project: {
"id": 1,
"type": 1,
"startNode": 1,
"startKeyNo": 1,
"endKeyNo": 1,
"endNode": 1,
"role": 1,
"start_node_name": "$结果集字段名称a.name",
"start_node_labels": "$结果集字段名称a.labels"
}
}
,
{
$out: "集合输出目标集合名称"
}
])