如何通过一个字段查询并获取mongoose中的特定字段?

时间:2017-05-03 05:03:58

标签: node.js mongodb mongoose

我有一个如下集合, enter image description here

我想获得特定国家的城市。什么应该是查询?

这就是我的尝试。

db.getCollection('_event').find([
 {$match: {}},
 {$project: {
  cities: {
   $filter: {
    input: 'city',
    as: 'r',
    cond: {$eq: ['$$r.country', 'Portugal']}
   }
  }
 }}
])

2 个答案:

答案 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\}) 

第二名和葡萄牙一样

感谢。