我想获得特定国家的城市。什么应该是查询?
这就是我的尝试。
db.getCollection('_event').find([
{$match: {}},
{$project: {
cities: {
$filter: {
input: 'city',
as: 'r',
cond: {$eq: ['$$r.country', 'Portugal']}
}
}
}}
])
答案 0 :(得分:2)
请使用以下
db.getCollection('_event').find(
{'location.country':'Portugal'},{'location.city':1}
)
答案 1 :(得分:0)
您尝试过的方法是使用聚合实现的Pipeline方式(对于修改使用聚合)
db.getCollection('_event').aggregation([
{$match: {}},
{$project: {
cities: {
$filter: {
input: 'city',
as: 'r',
cond: {$eq: ['$$r.country', 'Portugal']}
}
}
}}
])
或以简单的方式(获得整个模型): -
1 db.getCollection('_event').find({"location.country":"Portugal"})
2 db.getCollection('_event').find({"location.country":\Portugal\})
第二名和葡萄牙一样
感谢。