MongoDB是一种NoSQL类型的数据库,以键值对的形式将数据存储在文档中。MongoDB支持强大的检索命令和操作符,这使得它在其他DBMS(数据库管理系统)中很受欢迎。MongoDB最常用的方法是find() 方法,它有助于按照任何顺序或查询来显示文档。像其他数据库管理系统一样,MongoDB为每个文档创建了一个默认的唯一ID (大多数数据库管理系统的主键)。
在MongoDB中,通过使用唯一的ID来与文档进行交互是非常简单有效的。MongoDB的find ()方法也可以通过参考文档的ID 来应用于MongoDB集合。在find() 方法中通过使用唯一的ID来检索文档的整个过程被命名为**"find"()by id**。
在MongoDB系列的这篇文章中,我们将提供一个顺序指南来应用find()方法来通过ID检索文档。
在MongoDB中如何通过id查找方法工作
在MongoDB中,find()by id方法是find()方法的一个扩展,因此使用的主要语法与find() 方法相同。下面给出了应用find()by id的语法。
db.collection-name({_id: <value>})
在MongoDB中,对于唯一的id有两种可能。
- 如果用户在插入文档时定义了id值,那么它必须是唯一的。
- 如果用户没有创建一个唯一的id,MongoDB会自动为每个文档生成唯一的id。
如何在MongoDB中使用find by id方法
在开始在一个集合上应用find by id之前,本教程将使用以下基于MongoDB的实例。
数据库名称: "linuxhint"是本指南中使用的数据库名称。
集合名称: "linuxhint"数据库的两个集合被命名为 "分布"和 "雇员"。
例1:用户定义的ID
本例将使用 "distributions"集合。如前所述,当用户用"_id"字段插入每个文档时,它就成为用户定义的唯一ID。例如,在 "distributions"集合中插入的文档包含用户定义的id**(1,2,3...)**,在下面的输出中可以看到。
> db.distributions.find().pretty()

你可以通过在find()方法中引用其id 来检索任何文档。例如,下面的命令将有助于检索一个"_id"值为2的文档。
> db.distributions.find({_id: 2})

同样,你也可以通过使用 "find by id"方法来获取任何其他文件。
在用户定义的id上使用find by id和sort方法。 此外,在find()方法 和 sort()方法的帮助下,你可以按id的升序获得输出。
下面提到的命令显示了 "查找"和 "排序"方法在 "分布"集合的id上的应用。
注意: 排序顺序可以是 "1"或"-1"**,**它们分别代表升序或降序。
> db.distributions.find().sort({_id: -1})

例2:系统定义的id
在这个例子中,使用了 "employees"集合,这个集合包含有系统定义的 "id"的文档,如下图所示。
> db.employees.find().pretty()

你会看到,"_id"字段包含了每个文档的一个复杂的、唯一的id。
所以,要检索任何文档,你必须传递长的id,如下图所示的命令。
> db.employees.find({_id: ObjectId("616d7ca2cb1032dfa6345840")})

在系统定义的id上使用find by id和sort方法。像 在用户定义的id上一样;你可以在系统定义的id上使用排序方法,以获得升序或降序的输出。
下面写的命令将对 "employees"集合的文件以降序排序。
> db.employees.find().sort({_id: -1})

注意: 语法是一样的,但集合的名称不同,id的定义也不同。
在处理系统定义的id时,如果你错误地插入了错误的"_id"长度**,**那么你可能会遇到以下错误。

或者,如果你想通过用户定义的 "id"来检索系统定义的 "id",命令会被执行,但不会显示任何输出,因为用户定义的 "id "在 "雇员"集合中不存在。

结论
MongoDB的find()方法包含了一个广泛的支持操作符和命令的列表,有助于以精炼的形式检索文档。唯一的ID可以与find()方法一起使用,以根据他们的ID来获取文档。通过遵循本指南,Mongo用户可以通过在find()方法中使用这些文档的id来获得文档。此外,为了更好地理解,我们提供了几个例子,展示了MongoDB中 "**find()by id "**方法的用法。