Mongoose 是一个 Node.js 的 MongoDB ORM 库,它可以让我们更方便地操作 MongoDB 数据库。在实际开发中,我们经常需要查询满足多个条件的文档。Mongoose 提供了 $or 操作符来查询多个条件,本文将介绍 Mongoose 中使用 $or 查询多个条件的方法及示例。
$or 操作符
$or 操作符用于查询满足多个条件之一的文档。它接受一个包含多个条件的数组,每个条件都是一个对象,对象的键是字段名,值是查询条件。例如,以下代码查询 age 字段等于 18 或者 name 字段等于 '张三' 的文档:
Model.find({ $or: [ { age: 18 }, { name: '张三' } ] }, function(err, docs) { // ... });
使用 $or 查询多个条件
在 Mongoose 中,我们可以使用 Query 对象的 or 方法来构建 $or 查询。例如,以下代码查询 age 字段等于 18 或者 name 字段等于 '张三' 的文档:
Model.find().or([ { age: 18 }, { name: '张三' } ]).exec(function(err, docs) { // ... });
我们也可以使用链式调用来添加多个条件,例如:
Model.find().or([ { age: 18 } ]).or([ { name: '张三' } ]).exec(function(err, docs) { // ... });
示例
下面是一个完整的示例,我们将使用一个名为 users 的集合,包含以下文档:
{ "_id" : ObjectId("5a9620c7f5a5d8c5e5e5b3c3"), "name" : "张三", "age" : 18, "gender" : "男" } { "_id" : ObjectId("5a9620c7f5a5d8c5e5e5b3c4"), "name" : "李四", "age" : 20, "gender" : "女" } { "_id" : ObjectId("5a9620c7f5a5d8c5e5e5b3c5"), "name" : "王五", "age" : 22, "gender" : "男" }
我们将查询年龄等于 18 或者性别为女的用户,以下是代码:
-- -------------------- ---- ------- --- -------- - -------------------- --------------------------------------------- --- ---------- - --- ----------------- ----- ------- ---- ------- ------- ------ --- --- ---- - ---------------------- ------------ ---------------- - ---- -- -- - ------- --- - --------------------- ----- - -- ----- - ------------------- ------- - ------------------ ---------------------- ---
输出结果如下:
-- -------------------- ---- ------- - - ---- ------------------------- ----- ----- ---- --- ------- ---- ---- - -- - ---- ------------------------- ----- ----- ---- --- ------- ---- ---- - - -
总结
本文介绍了 Mongoose 中使用 $or 查询多个条件的方法及示例。$or 操作符可以方便地查询满足多个条件之一的文档,我们可以使用 Query 对象的 or 方法来构建 $or 查询。在实际开发中,我们经常需要查询满足多个条件的文档,$or 操作符是一个非常有用的工具。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/66305919d3423812e4e44c67