MongoDB是一个NoSQL数据库,像其他数据库一样支持各种方法来存储和检索数据。MongoDB以文档的形式存储数据,一旦文档在一个集合中被创建;你就可以使用MongoDB查询来检索数据。MongoDB的检索模式与任何SQL数据库相同,但语法不同。为了检索信息,在MongoDB中使用".find() "方法。
在这篇文章中,我们将深入介绍MongoDB查询,以便从MongoDB数据库中获取所需的数据。本指南包括几个部分,以帮助从MongoDB查询文档。
在深入研究之前,让我们先看看在MongoDB中查询文档的前提条件。
先决条件
要从基于MongoDB的数据库中获取数据,你的Ubuntu系统必须具备以下条件。
Mongo Shell:Mongo shell必须处于非活动状态以执行查询
MongoDB数据库:基于Mongo的数据库需要在船上才能应用任何操作
如何在基于MongoDB的数据库中查询文档
本节包含从MongoDB数据库中检索数据的程序指南。为了进行本指南,前两个步骤是必须的
注意: 如果你已经执行过这些步骤,你可以跳过这些步骤。
步骤1:创建一个数据库
首先,导航到mongo shell;你可以使用以下命令来创建一个数据库;我们已经创建了一个名为 "test"的数据库。
> use test
第2步:创建一个集合并在集合中插入文件
一旦数据库被创建,使用下面的mongo shell命令来创建一个集合;这个集合在这里被命名为 "mycollection"。
> db.createCollection("mycollection")
创建集合后,使用插入方法将文档插入到 "mycollection"集合中。
下面的命令可以在 "mycollection"集合中创建两个文档。
> db.mycollection.insert([{"title": "linuxhint", "description": "best linux content provider", "type": "linux"},{"name": "john", "description": "Author at linuxhint", "type": "ubuntu"}])
如何在MongoDB中查询一个文档
在执行完上述步骤后,你现在可以应用MongoDB的几种方法来帮助查询一个文档。
如何从MongoDB集合中获取所有文档
为了从一个集合中获取所有的文档,MongoDB支持两种方法。
- find() :查找文档并以非结构化的格式显示结果
- pretty() :查找文档并以结构化格式显示结果
这里用例子来描述这两种方法。
MongoDB的 "find()"方法以非结构化的方式显示所有的文档;这个方法的语法写在下面。
db.[name-of-collection].find()
"集合名称"指的是将从其中获取文档的集合名称;例如,下面的mongo shell命令将有助于显示 "mycollection"集合中的所有文档。
> db.mycollection.find()
pretty()"方法是 "find()"方法的一个扩展,它有助于显示结构化格式的文档。这个方法的语法写在下面。
db.[name-of-collection].find().pretty()
在我们的例子中,我们执行了下面的命令来获取 "mycollection"集合中的文档。
> db.mycollection.find().pretty()
如何从MongoDB集合中获取单个文档
还有一个名为 "findOne()"的方法可以帮助检索一个单一的文档。这个方法的语法描述如下。
db.[name-of-collection].findOne()
下面提到的命令将从 "test"数据库的 "mycollection"集合中检索数据。
> db.mycollection.findOne()
如何使用Mongo支持的操作符来查询一个文档
除了上述方法,你还可以使用MongoDB支持的几个运算符,这些运算符可以和 "find()"方法一起使用,以获得更精细的文档形式。例如,"$eq"运算符将打印出与我们所需结果完全匹配的文档;使用该运算符的语法如下所述。
{"key":{$eq:"value"}}
注意: 为了使任何操作符发挥作用,它们都要放在 "find()"方法中。
下面提到的命令将显示符合 "ubuntu "类型的文件。
> db.mycollection.find({"type":{$eq:"ubuntu"}}).pretty()
注意: pretty方法只是为了获得结构化格式的显示。
$lt运算符 :这个操作符用于处理数字元素;你可以打印属于该条件的特定文件。以下语法用于应用这个运算符。
{"key":{$lt:"value"}}
同样,MongoDB支持的数字运算符也有一个列表。
gt"运算符的语法描述如下。
{"key":{$gt:"value"}}
此外,有几个运算符**(nin**)专门与数组数据类型有关:你可以用它们来通过使用数组过滤内容来显示文档。
nin运算符。这 两个运算符与 "find()"方法一起使用,在数组的基础上过滤文档。
例如,$in操作符可以用来打印与 "key"和任何指定 "value"相匹配的文档。
{"key":{"value":["value1","value2",---]}}
同样,nin操作符的语法与$in操作符相同。
{"key":{"value":["value1","value2",---]}}
OR & AND操作符:O R条件搜索集合中的 "键"和 "值",并打印所有至少包含一个 "键"和相关 "值"的文件。其语法如下。
{$or:[{key1:value1}, {key2:value2},....]}
而AND操作符只匹配那些包含命令中提到的所有 "键"和 "值"的文件。AND条件的语法如下。
{$and:[{key1:value1}, {key2:value2}.....]}
结论
MongoDB提供了非关系型数据库管理支持,与传统数据库相比,其行为方式有所不同。像其他数据库一样,MongoDB也可以用各种方法和操作符查询文档。在这篇文章中,你已经学会了在MongoDB中使用基本方法和这些方法所支持的操作符来查询一个文档。基本方法只是在没有任何条件的情况下打印文档;但是,如果你想在有条件的情况下获得结果;你可以使用基本方法的操作符来实现。