mongodb - 在mongo查询中从数组中获取数据
问题描述
我有一个查询 ( db.vehicles.find( {}, { 'cars.model': 1 } )
),它可以让我得到一些看起来像的数据
{
_id: ObjectId(...),
cars: [
{
model: 'foo'
}
]
}
{
_id: ObjectId(...),
cars: [
{
model: 'foo'
},
{
model: 'bar'
}
]
}
但我真的很想让它返回类似的东西
{
_id: ObjectId(...),
cars: [ 'foo' ]
}
{
_id: ObjectId(...),
cars: [ 'foo', 'bar' ]
}
或者至少是数据没有嵌套的东西。我似乎无法弄清楚如何用 mongo 做到这一点,因为我对它比较陌生。
我还想知道您是否不应该在 mongo 中做这种事情,因为似乎大多数查询都将数据保持原样,但只是让您获得您拥有但经过过滤的数据。也许我在尝试 mongo 查询时带来了太多 PostgreSQL 的想法。
解决方案
试试下面的查询
db.getCollection('vehicles').aggregate([
{
$addFields: {
cars : '$cars.model'
}
}
])
推荐阅读
- java - 从 Spring Boot 应用程序通过 OAuth 2.0 访问内部 REST API
- python-3.x - 输入后如何删除换行符?
- excel - Excel VBA循环并以交互方式显示更改
- css - 当元素内部的输入使用 CSS/SCSS 聚焦时,我可以在元素之后更新父元素的样式吗?
- terraform - 您如何检测 Terraform 脚本是否在计划或应用模式下运行?
- python - 如何从位于另一个python文件的一个python文件中的类中调用方法
- android - 插页式广告加载失败:缓存错误 facebook 受众网络
- nginx - 为什么 Nginx 会按顺序向上游服务器发送请求
- pyspark - 使用 Pyspark 显示 URL 图片
- python - 如何从 Mime 消息中删除水平线?