什么是 MongoDB 查询?
MongoDB是最流行的面向文档的开源数据库,它是一种 NoSQL 类型的数据库。 NoSQL 数据库代表非结构化查询数据库。 MongoDB 以结构(字段:值对)的形式而不是表格形式存储数据。它以 BSON(二进制 JSON)格式存储数据,就像 JSON 格式一样。
MongoDB 数据库集合的简单示例。
{
“_id” : ObjectId(“6009585d35cce6b7b8f087f1”),
“title” : “Math”,
“author” : “Aditya”,
“level” : “basic”,
“length” : 230,
“example” : 11
}
什么是 MongoDB 查询?
MongoDB Query 是一种从 MongoDB 数据库中获取数据的方法。 MongoDB 查询提供了从数据库获取数据过程中的简单性,它类似于 SQL 数据库语言中的 SQL 查询。在执行查询操作时,还可以使用可用于从数据库中检索特定数据的标准或条件。
MongoDB 提供函数名称为db.collection_name.find() 对数据库进行查询操作。在这篇文章中,我们使用不同的方法和运算符以多种方式讨论了这个函数。
在这里,我们正在与:
Database: geeksforgeeks
Collection: Article
注意:这里的“漂亮()” 查询方法仅用于提高文档数据库的可读性。(没有必要)
字段选择
find() 方法以非结构化形式({
句法:
db.collection_name.find()
例子:
db.article.find()
此方法用于显示文章集合中存在的所有文档。
查找单个文档
在 MongoDB 中,我们可以使用 findOne() 方法查找单个文档,该方法返回与给定过滤器查询表达式匹配的第一个文档。
句法:
db.collection_name.findOne ()
例子:
db.article.findOne()
在这里,我们将显示文章集合的第一个文档。
以格式化的方式显示文档
在MongoDB中,我们可以使用pretty()方法以格式良好的方式显示指定集合的文档。
句法:
db.collection_name.find().pretty()
例子:
db.article.find().pretty()
在这里,我们将使用 pretty() 方法以格式良好的方式显示文章集合的文档。
等价过滤查询
相等运算符($eq) 用于匹配字段值等于指定值的文档。换句话说,$eq运算符用于指定相等条件。
句法:
db.collection_name.find({< key > : {$eq : < value >}})
例子:
db.article.find({author:{$eq:"devil"}}).pretty()
在这里,我们将显示文章集合中与过滤器查询(即{author : {$eq : “devil”}})匹配的文档。
大于过滤查询
要使用大于等于或小于等于等条件获取特定数字数据,请在 find() 方法中使用 $gte 或 $lte运算符。
句法:
db.collection_name.find({< key > : {$gte : < value >}})
or
db.collection_name.find({< key > : {$lte : < value >}})
例子:
db.article.find({length:{$gte:510}}).pretty()
在这里,我们正在查询以获取长度属性值大于 510 的文档数据。因此,我们在 find() 方法中传递了一个过滤器查询,即{length : {$gte : 510}} 。
检查存在过滤器查询
$exists运算符显示所有集合文档(如果它们存在于给定键上)。
句法:
db.collection_name.find({< key > : {$exists : < boolean >}})
示例:
db.article.find({time:{$exists:"true"}}).pretty()
在这里,我们将通过在 find() 方法中传递一个过滤查询{time : {$exists : “true”}}来查看所有具有名为 time 的属性的文档。
逻辑运算符查询
$and运算符属于 MongoDB 逻辑运算符的类型,它对一个或多个表达式的数组执行逻辑 AND 运算,并仅选择或检索与数组中所有给定表达式匹配的文档。
句法 :
db.collection_name.find({$and : [{< key > : {$eq : < value1 >}}, {< key > : {$exists : < boolean >}}]})
例子:
db.article.find({$and:[{level:{$eq:"high"}},{level:{$exists : "true"}}]}).pretty()
在这个查询示例中,我们使用 and运算符并给出了两个条件,它们在下面突出显示
- 和运算符: {$and :[第一个条件,第二个条件]}
- 第一个条件(级别==“高”): {级别:{$eq:“高”}}
- 第二个条件: {level : {$exists : “true”}}
项目查询
此查询使用 1 和 0 返回我们在参数中指定的任何结果
- 1:表示返回结果
- 0:表示不返回结果
这些参数称为投影参数。
句法:
db. collection_name. find({< key > : < value >}, {
例子:
db. article. find({author : "devil"},{title : 0}).pretty()
此查询示例请求将作者命名为“devil”但在记录中不想通过将其指定为投影参数 0 来显示标题属性的数据
- 查询以查找具有给定属性的记录: { author : “devil”}
- 投影参数: {title : 0}
限制查询
此查询方法指定游标返回的最大文档数。
句法 :
db.collection_name.find({< key > : < value >}).limit(< Integer_value >)
例子:
db. article. find({author : “devil” }). limit(2) . pretty()
这个查询方法只是find方法的扩展,只提供一个最大数量有限的结果(这里是2)
- 查询以查找具有给定属性的记录: find({author : “devil” })
- 查询限制结果: limit(2)
输出:
对字段进行排序
在 MongoDB 中,它以升序或降序的排序顺序返回查找结果。订单由给定的参数指定,如
- 1(正一):表示记录中具有属性值的升序。
- -1(负一):表示记录中具有属性值的降序。
句法:
db.collection_name.find(). sort({< key > : 1})
示例:
db.article.find({author : "devil"}).sort({example : 1}).pretty()
此示例将显示具有示例属性的结果记录,它将按升序显示,因为我们在这里传递值 1。
- 查询查找具有给定属性的记录: find ({author : “devil”})
- 查询排序参数: sort({example : 1})