在 Sequelize 中,我们经常需要进行多条件查询或者 OR 查询。本文将为大家详细介绍 Sequelize 的这两种查询方式,并提供对应的示例代码。
多条件查询
多条件查询,即根据多个条件进行查询。在 Sequelize 中,我们可以通过以下几种方式实现多条件查询:
1. 传递多个参数
我们可以直接在查询方法中传递多个参数,每个参数代表一个查询条件。例如:
const users = await User.findAll({ where: { name: 'Alice', age: 18 } });
上述代码实现的是查询姓名为 Alice 且年龄为 18 的用户列表。
2. 使用操作符
我们还可以使用 Sequelize 提供的一些操作符来指定查询条件。例如:
-- -------------------- ---- ------- ----- ----- - ----- -------------- ------ - ----- - ---------- --------- -- ---- - --------- -- - - ---
上述代码实现的是查询姓名包含 Alice 且年龄大于等于 18 的用户列表。其中 Op 是 Sequelize 提供的操作符对象。
3. 使用数组
如果我们需要对同一个字段进行多个条件的拼接查询,我们可以将这些条件放在一个数组中。例如:
const users = await User.findAll({ where: { age: { [Op.or]: [18, 20] } } });
上述代码实现的是查询年龄为 18 或 20 的用户列表。其中 Op.or 代表或的操作符。
OR 查询
OR 查询,即根据多个条件之一进行查询。在 Sequelize 中,我们可以通过以下两种方式实现 OR 查询:
1. 使用 $or 操作符
我们可以使用 $or 操作符来实现 OR 查询。例如:
const users = await User.findAll({ where: { $or: { name: 'Alice', age: 18 } } });
上述代码实现的是查询姓名为 Alice 或者年龄为 18 的用户列表。
2. 使用 [Op.or] 操作符
我们还可以使用 Sequelize 提供的操作符 [Op.or] 来实现 OR 查询。例如:
const users = await User.findAll({ where: { [Op.or]: [ {name: 'Alice'}, {age: 18} ] } });
上述代码实现的是查询姓名为 Alice 或者年龄为 18 的用户列表。
总结
Sequelize 中的多条件查询和 OR 查询是非常常见的操作,我们需要掌握它们的使用方法。除此之外,Sequelize 还提供了其他丰富的查询方式,需要我们多加学习和实践。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64928aae48841e9894053aa0