如何使用 mongodb 中的数组对象字段连接两个集合
how to join two collections with array object field in mongodb
我是 MongoDB 的新人。
我有两个名称为 adverb
和 categories
的集合。
副词字段是
{
"advId": "myid",
"advTitle": "myTitle",
"advDescription": "test description",
"fromUser": "userid",
"subCategoryId": "catid",
"advLabel": "1",
"cityId": "cityid",
"areaName": "areaName",
"chatState": true,
"geoPosition": {
"latitude": 21.61980691353274,
"longitude": 51.519725019871956
},
"advImages": [],
"timeStamp": 1646670847761,
"visibility": false
}
和带有字段的类别集合
{
"catId": "catId",
"catTitle": "catTitle",
"catSub": [{
"subId": "subId",
"subTitle": "آپارتمان"
}, {
"subId": "subId",
"subTitle": "ویلایی"
}]
}
我想将“副词的 subCategoryId”与“catSub 的类别集合上的 subId”连接起来,catSub 是一个包含对象值的数组
我怎样才能做到这一点?
tnx.
db.adverb.aggregate([
{
"$lookup": {
"from": "categories",
"localField": "subCategoryId",
"foreignField": "catSub.subId",
"as": "docs"
}
}
])
我是 MongoDB 的新人。
我有两个名称为 adverb
和 categories
的集合。
副词字段是
{
"advId": "myid",
"advTitle": "myTitle",
"advDescription": "test description",
"fromUser": "userid",
"subCategoryId": "catid",
"advLabel": "1",
"cityId": "cityid",
"areaName": "areaName",
"chatState": true,
"geoPosition": {
"latitude": 21.61980691353274,
"longitude": 51.519725019871956
},
"advImages": [],
"timeStamp": 1646670847761,
"visibility": false
}
和带有字段的类别集合
{
"catId": "catId",
"catTitle": "catTitle",
"catSub": [{
"subId": "subId",
"subTitle": "آپارتمان"
}, {
"subId": "subId",
"subTitle": "ویلایی"
}]
}
我想将“副词的 subCategoryId”与“catSub 的类别集合上的 subId”连接起来,catSub 是一个包含对象值的数组 我怎样才能做到这一点? tnx.
db.adverb.aggregate([
{
"$lookup": {
"from": "categories",
"localField": "subCategoryId",
"foreignField": "catSub.subId",
"as": "docs"
}
}
])