📜  什么是 MongoDB 查询?

📅  最后修改于: 2022-05-13 01:56:58.182000             🧑  作者: Mango

什么是 MongoDB 查询?

MongoDB是最流行的面向文档的开源数据库,它是一种 NoSQL 类型的数据库。 NoSQL 数据库代表非结构化查询数据库。 MongoDB 以结构(字段:值对)的形式而不是表格形式存储数据。它以 BSON(二进制 JSON)格式存储数据,就像 JSON 格式一样。

MongoDB 数据库集合的简单示例。

什么是 MongoDB 查询?

MongoDB Query 是一种从 MongoDB 数据库中获取数据的方法。 MongoDB 查询提供了从数据库获取数据过程中的简单性,它类似于 SQL 数据库语言中的 SQL 查询。在执行查询操作时,还可以使用可用于从数据库中检索特定数据的标准或条件。

MongoDB 提供函数名称为db.collection_name.find() 对数据库进行查询操作。在这篇文章中,我们使用不同的方法和运算符以多种方式讨论了这个函数。

在这里,我们正在与:



注意:这里的“漂亮()” 查询方法仅用于提高文档数据库的可读性。(没有必要)

字段选择

find() 方法以非结构化形式({ : })显示数据库集合,包括由 MongoDB 自动创建的 ” id ”和由用户或管理员插入的集合数据。

句法:

例子:

db.article.find()

此方法用于显示文章集合中存在的所有文档。

查找单个文档

在 MongoDB 中,我们可以使用 findOne() 方法查找单个文档,该方法返回与给定过滤器查询表达式匹配的第一个文档。



句法:

例子:

db.article.findOne()

在这里,我们将显示文章集合的第一个文档。

以格式化的方式显示文档

在MongoDB中,我们可以使用pretty()方法以格式良好的方式显示指定集合的文档。

句法:

例子:

db.article.find().pretty() 

在这里,我们将使用 pretty() 方法以格式良好的方式显示文章集合的文档。

等价过滤查询

相等运算符($eq) 用于匹配字段值等于指定值的文档。换句话说,$eq运算符用于指定相等条件。

句法:

例子:

db.article.find({author:{$eq:"devil"}}).pretty()  

在这里,我们将显示文章集合中与过滤器查询(即{author : {$eq : “devil”}})匹配的文档。

大于过滤查询  

要使用大于等于或小于等于等条件获取特定数字数据,请在 find() 方法中使用 $gte 或 $lte运算符。

句法:

例子:

db.article.find({length:{$gte:510}}).pretty()

在这里,我们正在查询以获取长度属性值大于 510 的文档数据。因此,我们在 find() 方法中传递了一个过滤器查询,即{length : {$gte : 510}}

检查存在过滤器查询

$exists运算符显示所有集合文档(如果它们存在于给定键上)。

句法:

示例

db.article.find({time:{$exists:"true"}}).pretty()

在这里,我们将通过在 find() 方法中传递一个过滤查询{time : {$exists : “true”}}来查看所有具有名为 time 的属性的文档。

逻辑运算符查询

$and运算符属于 MongoDB 逻辑运算符的类型,它对一个或多个表达式的数组执行逻辑 AND 运算,并仅选择或检索与数组中所有给定表达式匹配的文档。

句法 :

例子:

db.article.find({$and:[{level:{$eq:"high"}},{level:{$exists : "true"}}]}).pretty()

在这个查询示例中,我们使用 and运算符并给出了两个条件,它们在下面突出显示

  • 和运算符: {$and :[第一个条件,第二个条件]}
  • 第一个条件(级别==“高”): {级别:{$eq:“高”}}
  • 第二个条件: {level : {$exists : “true”}}

项目查询

此查询使用 1 和 0 返回我们在参数中指定的任何结果

  • 1:表示返回结果
  • 0:表示不返回结果

这些参数称为投影参数

句法:



例子:

db. article. find({author : "devil"},{title : 0}).pretty()

此查询示例请求将作者命名为“devil”但在记录中不想通过将其指定为投影参数 0 来显示标题属性的数据

  • 查询以查找具有给定属性的记录: { author : “devil”}
  • 投影参数: {title : 0}

限制查询

此查询方法指定游标返回的最大文档数。

句法 :

例子:

这个查询方法只是find方法的扩展,只提供一个最大数量有限的结果(这里是2)

  • 查询以查找具有给定属性的记录: find({author : “devil” })
  • 查询限制结果: limit(2)

输出

对字段进行排序

在 MongoDB 中,它以升序或降序的排序顺序返回查找结果。订单由给定的参数指定,如

  • 1(正一):表示记录中具有属性值的升序。
  • -1(负一):表示记录中具有属性值的降序。

句法:

示例 

db.article.find({author : "devil"}).sort({example :  1}).pretty() 

此示例将显示具有示例属性的结果记录,它将按升序显示,因为我们在这里传递值 1。

  • 查询查找具有给定属性的记录: find ({author : “devil”})
  • 查询排序参数: sort({example : 1})