複数の条件でテーブルをクエリするにはどうすればよいですか?両方が機能する例を以下に示します。
Post.findAll({ where: ['deletedAt IS NULL'] }).success()
そして
Post.findAll({ where: {topicId: req.params.id} }).success()
次に、条件を組み合わせる必要がある場合は、次のようなことをする必要があるように感じます
Post.findAll({ where: [{topicId: req.params.id}, 'deletedAt IS NULL'] }).success()
、しかしそれは動作しません。
sequelizeが待機する構文は何ですか?
ノードのデバッグは言う:
デバッグ:TypeError:オブジェクト#にはメソッド 'replace'がありません
それが重要なら...
この投稿とsequelizeの最新バージョンの時点では、上記の回答は古くなっています。私は誰かを時間を節約することを期待して働いた解決策を投稿しています。
filters["State"] = {$and: [filters["State"], {$not: this.filterSBM()}] };
JSONオブジェクト内の$と配列に注意してください。トークンの交換。
または、より一般的な方法で記述します。これは、誰かが頭を包むのに役立つ可能性があるためです。
{ $and: [{"Key1": "Value1"}, {"Key2": "Value2"}] }
できるよ:
Post.findAll({ where: {deletedAt: null, topicId: req.params.id} })
deletedAt IS NULL
に翻訳されます
ところで、deletedAt NOT IS NULL
が必要な場合は、次を使用します。
Post.findAll({ where: {deletedAt: {$ne: null}, topicId: req.params.id} })
ただやる:
Post.findAll(
{ where: ["topicId = ? AND deletedAt IS NULL", req.params.id] }
).success()
または、またはクエリが必要ですか?
新バージョンでこれを試してください
Post.findAll({
where: {
authorId: 12,
status: 'active'
}
}).then(function (data) {
res.status(200).json(data)
})
.catch(function (error) {
res.status(500).json(error)
});;