如何从对象数组中选择两个属性作为knex上的数组?

ftf50wuq  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(332)

我在项目中使用objextion.js和knex。
我想从关系中选择两个属性,并将它们嵌套在一个数组中。这个关系包含属性为lat和lng的对象数组,我需要接收属性为lat和lng的数组数组 [[lat, lng]] . 我如何理解我必须选择字段并使用raw from objective来编写数组\u agg以包含我的道具,但我不明白必须有什么语法。
在带有select的modifygraph中,我接收带有lng和lat的对象数组
我的请求

const query = Restaurants
    .query()
    .withGraphFetched({
      schedule: true,
    })
    .skipUndefined();

  if (lat && lng) {
    query.withGraphFetched({
      areas: {
        area: {
          coordinates: true,
        },
      },
    }).modifyGraph('areas.area.coordinates', (builder) => {
      builder.select([
        'lat',
        'lng',
      ]);
    });
  }

  return query
    .andWhere(restFields)
    .andWhere('name', 'ilike', `%${search}%`);
};

db给我的回复

[
  AreasCoordinatesModel { lat: -46.653, lng: -23.543 },
  AreasCoordinatesModel { lat: -46.634, lng: -23.5346 },
]

一定是的

[
 [ -46.653, -23.543 ],
 [ -46.634,-23.5346 ]
]
inn6fuwd

inn6fuwd1#

可以使用

return (query
    .andWhere(restFields)
    .andWhere('name', 'ilike', `%${search}%`)).map(Object.values);

它会像你想的那样回来。

相关问题