什么是 Mongoose
Mongoose 是一种在 Node.js 中使用 MongoDB 的优秀工具。它基于 MongoDB 的 node.js 驱动程序,提供了一种基于模式的建模方式,使得我们可以更好的管理我们的数据。
查询概述
Mongoose 提供了一种有用的查询方式,让我们可以轻松地从 MongoDB 中检索数据。在 Mongoose 中,我们可以使用 Model.find() 方法来执行查询操作。与 MongoDB 中的 find() 方法一样,Model.find() 方法也是返回一个可迭代的结果集(cursor)。
Model.find() 方法有多种用法:
查找所有的文档
Model.find({}, function(err, docs) { // 处理错误等 console.log(docs); // 所有文档 });
上述代码将检索数据库中的所有文档并将它们作为数组 docs
返回给回调函数。
如果您不需要结果,并且想确保回调函数在所有查询结果执行后才执行,可以省略回调函数:
Model.find().exec();
查找某个字段匹配的文档
Model.find({foo: 'bar'}, function(err, docs) { // 处理错误等 console.log(docs); // 所有 `foo` = 'bar' 的文档 });
上述代码查询数据库中所有字段 foo
的值为 'bar'
的文档,并将它们返回给回调函数。
查找匹配某个条件的文档
-- -------------------- ---- ------- ------------ ---- - ----- ------- ----- ------ - -- ------------- ----- - -- ----- ------------------ -- -- ----- - ----- -- ----- - ----- --- ---
上述代码查询数据库中所有匹配以下条件的文档:
foo
的值为'bar'
bar
的值为'foo'
比较查询
Mongoose 具有比较查询的能力。只需将变量与查询对象一起传递即可。以下是一个演示如何使用 $gt
操作符的示例。
Model.find({ age: { $gt: 50 } }, function (err, docs) { // 处理错误等 console.log(docs); // 返回年龄大于 50 岁的文档 });
上述代码查询数据库中所有匹配以下条件的文档:
age
大于 50
正则表达式查询
Mongoose 也支持正则表达式查询,只需将正则表达式与查询对象一起传递即可。以下是一个演示如何使用正则表达式的示例:
Model.find({ name: /john/i }, function (err, docs) { // 处理错误等 console.log(docs); // 返回所有具有类似于 "john" 的名字(不区分大小写)的文档 });
上述代码查询数据库中所有匹配以下条件的文档:
name
值类似于 "john"(不区分大小写)
限制结果
我们也可以限制结果的数量,并指定跳过的文档数量。
Model.find().limit(10).skip(20).exec(function (err, docs) { // 处理错误等 console.log(docs); // 返回结果的第 20 到第 30 项 });
上述代码查询数据库中从第 21 个文档开始的任意 10 个文档,并将它们作为数组返回给回调函数。
总结
上述是使用 Mongoose 在 MongoDB 中进行查询的基本方法。这些查询使我们可以从 MongoDB 中检索数据,以及强大的过滤和搜索功能。通过这些方法,您可以轻松地从 MongoDB 中检索您的数据,以及更好地管理它们。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64e312cff6b2d6eab3e6b5f3