[英]How to select two properties from array of objects as array on knex?
我在項目中使用objextion.js和knex 。
我想 select 來自關系的兩個屬性並將它們嵌套在一個數組中。 該關系包含具有屬性lat和lng的 object 數組,我需要接收具有 lat 和 lng [[lat, lng]]
的 arrays 數組。 我如何理解我必須 select 字段並使用原始反對來編寫 array_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 ]
]
您可以使用 map 返回數組中的所有對象
return (query
.andWhere(restFields)
.andWhere('name', 'ilike', `%${search}%`)).map(Object.values);
它會像你想要的那樣返回。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.