mongo 数据库中 2 collections 之间的映射
mapping between 2 collections in mongo DB
我想在 2 collection 之间做一个映射,并从 属性 的 属性 的值修改 collection 1 的 属性 的值=25=]2
这里 collection 1 :
{
"field1": "value1",
"mycode": "1234",
"field3": "value3"
}
这是我的 collection 2 :
{
"code": "1234",
"label": "myLabel"
}
我想把2个collection映射到mycode为collection1和code为collection2修改mycode
的值
这是预期的结果:
{
"field1": "value1",
"mycode": "myLabel",
"field3": "value3"
}
你可以用某种方式做一个聚合管道
第一步 - 在collection1
中映射mycode
,在collection2
中映射code
第二步 - $unwind
从数组中取出查找的部分
第 3 步 - 将 mycode
值设置为 label
并显示 field1
、field3
并隐藏 _id
(如果需要) )
db.collection1.aggregate([
{
$lookup: {
"from": "collection2",
"localField": "mycode",
"foreignField": "code",
"as": "mycode"
}
},
{
$unwind: "$mycode"
},
{
$project: {
"field1": 1,
"field3": 1,
"_id": 0,
"mycode": "$mycode.label"
}
}
])
我想在 2 collection 之间做一个映射,并从 属性 的 属性 的值修改 collection 1 的 属性 的值=25=]2
这里 collection 1 :
{
"field1": "value1",
"mycode": "1234",
"field3": "value3"
}
这是我的 collection 2 :
{
"code": "1234",
"label": "myLabel"
}
我想把2个collection映射到mycode为collection1和code为collection2修改mycode
的值这是预期的结果:
{
"field1": "value1",
"mycode": "myLabel",
"field3": "value3"
}
你可以用某种方式做一个聚合管道
第一步 - 在collection1
中映射mycode
,在collection2
中映射code
第二步 - $unwind
从数组中取出查找的部分
第 3 步 - 将 mycode
值设置为 label
并显示 field1
、field3
并隐藏 _id
(如果需要) )
db.collection1.aggregate([
{
$lookup: {
"from": "collection2",
"localField": "mycode",
"foreignField": "code",
"as": "mycode"
}
},
{
$unwind: "$mycode"
},
{
$project: {
"field1": 1,
"field3": 1,
"_id": 0,
"mycode": "$mycode.label"
}
}
])