如何在MongoDB中使用查找方法

203 阅读3分钟

MongoDB是一个以文档形式存储数据的数据库,然后提供自己的查询语言,名为MongoDB查询语言(MQL),用于操作数据。有几种方法可以用来获取文档,它们包括find()、findAndModify()、findOne()、findOneAndDelete() 等。在这些方法中,find() 方法被使用得最多,因为它通常可以用于每一次检索。find() 方法是任何基于Mongo的查询的核心部分,其目的是为了检索文档。查找方法有助于根据其中定义的一些条件和参数来检索文档。

在这篇文章中,我们将深入介绍find()方法的基本原理,并将指导你在Mongo查询中使用它。

find()方法如何在MongoDB中工作

find()方法使用的语法写在下面。

find(query, projection)

或者

find()

上面显示了两种语法。第一种find()方法的语法是通过两个参数来帮助检索基于某些条件的文档,而第二种语法则是获取集合中存在的所有文档。

查询: 这个参数允许你通过在查询中定义其功能来获取一个集合中的特定文档。

投射:当 查询条件得到满足时, 投影 参数决定在查询执行后返回什么。

注意: 这两个参数都是可选的,如果需要,可以使用,否则**find()**方法可以单独执行。

如何在MongoDB中使用find()方法

本节简要介绍了find() 方法在MongoDB中的用法:为此,我们将使用以下MongoDB实例。

数据库:本文章中提到的数据库是 "linuxhint"

集合 :与linuxhint 数据库相关的集合被命名为 "library"。

例1:抓取集合中的所有文档

find()方法的基本用途是获取一个集合中的所有文档。例如,下面提到的命令将打印**"linuxhint "** 数据库的 "library"集合中的所有文档。

> db.library.find()

Text Description automatically generated

例2:在一个集合中获取特定的文档

通过使用find()方法而不传递参数,你可能会得到一些你不需要的文档。为了避免这种情况,find() 方法支持Mongo查询,只获取那些满足条件的文档。

下面的命令将只打印那些 "cat"字段等于 "Novel"的文档。

> db.library.find({cat: "Novels"})

例3:将find()方法与其他操作符一起使用

find()方法可以和几个运算符一起使用,以获得满足条件的文档。

条件运算符 :MongoDB支持的所有条件运算符都可以在find()方法中使用,以获得精确的结果。下面提到的命令可以打印出 "数量"大于或等于**"100"的文档。**

> db.library.find({quantity: {$gte: 100}})

Text Description automatically generated

同样,其他条件运算符如**ltlt、gte、$lte** 也可以尝试,以满足任何条件。

逻辑运算符 :MongoDB支持的逻辑运算符包括**andand、or、nornor、not,** 这些都是在find**()** 方法中使用的,用于逻辑地执行任何Mongo查询。

例如,这里提到的命令将打印那些数量大于100或**($or**)价格小于2000的文件。可以看到,下面提到的命令在一条命令中行使了逻辑条件 运算符的使用。

> db.library.find({$or: [{quantity: {$gt: 100}}, {price: {$lt: 2000}}]})

A screenshot of a computer Description automatically generated with medium confidence

阵列查询运算符: 下面的命令将根据属于MongoDB的 "数组查询运算符"类的$size运算符的执行情况来获取文件。

> db.library.find({shelves: {$size: 3}})

总结

MongoDB支持一个广泛的方法列表,这些方法有多种用途。find() 方法是MongoDB最常用的方法之一,用于从一个集合中检索文档。在这篇文章中,我们提供了一个简单的介绍,工作机制,以及find()方法在Mongo数据库中的使用方法。由于MongoDB具有基于文档的数据存储结构,人们注意到find()方法的灵活性减轻了查询过程中对MongoDB中文档的处理。本指南将作为MongoDB新手的宝石,因为find()方法是MongoDB检索查询的核心部分。