如何按一个字段查询并获取猫鼬中的特定字段?

Posted

技术标签:

【中文标题】如何按一个字段查询并获取猫鼬中的特定字段?【英文标题】:How to query by one field and get specific field in mongoose? 【发布时间】:2017-09-30 18:40:44 【问题描述】:

我有一个集合如下,

我想获取特定国家/地区的城市。查询应该是什么?

这是我尝试过的。

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

【问题讨论】:

Mongoose, Select a specific field with find的可能重复 图片在帖子中很有用,但确保帖子在没有它们的情况下仍然清晰。无需显示数据格式的屏幕截图,而是直接将实际数据复制并粘贴到帖子中。 cfmeta.***.com/questions/303812/… 【参考方案1】:

请按如下方式使用

db.getCollection('_event').find(
    'location.country':'Portugal','location.city':1
    )

【讨论】:

【参考方案2】:

您尝试的方式是使用 Aggregation 实现的 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\) 

第二个和葡萄牙一样

谢谢。

【讨论】:

以上是关于如何按一个字段查询并获取猫鼬中的特定字段?的主要内容,如果未能解决你的问题,请参考以下文章

仅填充猫鼬中的特定字段

如何获取 Model.countDocuments() 函数返回的文档计数并将其设置为猫鼬中的其他字段

如何填充数组内的对象和猫鼬中的另一个数组中的所有用户字段

如何在猫鼬中执行“每个”查询

如何仅在猫鼬中使用聚合填充嵌套在对象数组中的字段?

如何不在猫鼬中保存字段