web-dev-qa-db-ja.com

typeorm postgres select where json field equal to some value

Goal: stateが "florida"に等しいすべての行を返すselectクエリを記述します。

エンティティ列:

  @Column({ type: 'json'})
  public address: Address;

サンプル列の値:

{"city": "miami", "state": "florida"}

クエリの例(機能しません):

getManager().getRepository(User)
    .createQueryBuilder('user')
    .select()
    .where('user.address.state =:state', {state: "florida"})

この機能は現在typeormでサポートされていますか?もしそうなら、正しい行を返すためにwhere句をどのように変更する必要がありますか?

5
user2263572

動作しました。

正しい構文:

.where(`user.address ::jsonb @> \'{"state":"${query.location}"}\'`)
2
user2263572