我有一个查询(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思想。
答案 0 :(得分:1)
请尝试以下查询
db.getCollection('vehicles').aggregate([
{
$addFields: {
cars : '$cars.model'
}
}
])