在mongo查询中获取数组中的数据

时间:2019-03-08 18:00:10

标签: mongodb

我有一个查询(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思想。

1 个答案:

答案 0 :(得分:1)

请尝试以下查询

db.getCollection('vehicles').aggregate([
    {
        $addFields: {
            cars : '$cars.model'
        }
    }
])