sequelize
で正しい役割を持つユーザーのみを取得したいというクエリを実行しようとしています。ロールは文字列の配列として格納されます。例えば、['student']
または['school_owner', 'admin']
です。Sequelize:クエリ文字列が文字列の配列postgresql
この特定のケースでは、私は実際に学校を取得しようとしており、その学校の学校所有者を含めるようにしています。失敗し、関連するクエリが
const ownerQuery: { [key: string]: any } = {};
ownerQuery.roles = {$in: ["{school_owner}"]};
School
.findById(req.params.id,{include: [{ model: User, where: ownerQuery }]})
.then((school: School | null) => {
if (school === null) {
res.status(404).json({message: "Not Found"})
} else {
res.json(school)
}
}, (error) => next(error))
sequelize
ある{school_owner, admin}
のようなものとして、配列の値を記憶しています。 documentationは私が{}
を削除し、私の$in
クエリ
ownerQuery.roles = {$in: ["school_owner"]};
のために代わりに次を使用することができますが、それは私にArray value must start with "{" or dimension information.'
エラーを与えることを言います。
最初の例では、クエリは失敗しませんが、$in
クエリのように機能しません。 roles
の内容を正確に一致させる必要があります。例えば、ユーザは、私が持っている両方admin
とschool_owner
役割が
ownerQuery.roles = {$in: ["{school_owner, admin}"]};
私は特定の役割を持つすべてのユーザーに一致することができるように$in
クエリを実行するための正しい方法は何を言っている場合はどうなりますか?