【发布时间】:2017-07-14 06:14:38
【问题描述】:
我想在 $lookup 聚合之后过滤数据。
现在,我想要子集合中位置键的唯一值,而不是整个文档。另外,如果我需要位置中的特定密钥,即 zone_id 我该怎么办?请帮忙。
我正在使用以下查询
// 查询
db.parent.aggregate([
{
$lookup:
{
from: "child",
localField: "pid",
foreignField: "pid",
as: "more"
}
}
])
// 数据 // 子集合
db.child.insert({
"pid": 1,
"name": "Max",
"title": "Top"
"status": 1,
"description": {
"destination": "jur bagh",
"community": "abc"
},
"location:": {
"zone_id": "north",
"city": "jaipur",
"latitude": "12.121212",
"longitude": "21.414134"
},
"created_by": "user_id",
"modified_by": "user",
"created_at": "12:00",
"updated_at": "13:00"
});
//父集合
db.parent.insert({
"pid": 1,
"pname": "PQW",
"rox": "Labs",
"status": 1,
"created_by": "smdcd",
"modified_by": "pink",
"created_at": "12:00",
"updated_at": "13:00"
});
我想要这样的结果
db.parent.insert({
"pid": 1,
"pname": "PQW",
"rox": "Labs",
"status": 1,
"created_by": "smdcd",
"modified_by": "pink",
"created_at": "12:00",
"updated_at": "13:00"
"more" [
"location:": {
"zone_id": "north",
"city": "jaipur",
"latitude": "12.121212",
"longitude": "21.414134"
}
]
});
【问题讨论】:
-
请注意,您的子集合数据中似乎存在“错字”。该字段名为
"location:",名称末尾包含冒号:。目前尚不清楚这是否只是问题中的错误,或者您的实际数据是否包含此错误。因此,“错误”被认为是响应。
标签: mongodb mongodb-query aggregation-framework