MongoDB是一个数据库管理系统,以有效的方式存储和检索大量数据。像其他数据库一样,MongoDB也有几个数据操作命令和运算符,可以用来存储以及从文件集合中检索数据。MongoDB中几个常用的操作符包括**lt、or等。这些命令和操作符也与其他数据库有关;例如,$eq操作符执行与SQL数据库中where** 子句相同的操作。
在这篇文章中,我们将在MongoDB的背景下解释比较查询操作符$eq。
为什么$eq操作符在MongoDB中被使用
MongoDB中的$eq操作符可以用来从一个集合中检索文档。当你有一个包含数百个文档的集合,并且你想只检索那些与你所要求的字段和值相匹配的文档时,它是有帮助的。这个操作使你能够快速而顺利地获取所需的文档。
使用$eq的语法写在下面。
{“field”:{$eq:“value”}}
此外,在 "find()"方法中使用的扩展语法写如下。
db.collection-name.find({“field”:{$eq:“value”}})
其中
- "db"指的是要进行操作的数据库。
- "collection-name"表示将从其中检索数据的集合名称。
- "find()"是MongoDB的一个方法,用于从集合中检索文档。
- "field"和 "value"指的是文档中的字段名和它的赋值。
如何在MongoDB中使用$eq操作符
要使用$eq操作符,你必须有一个MongoDB数据库,可以使用以下mongo shell命令来创建。
第1步:创建MongoDB数据库
这里,"use"关键字将创建并连接到 "linuxhint"数据库。
> use linuxhint
第2步:创建集合并添加文件
一旦数据库被创建,使用以下命令在数据库内创建一个集合。
例如,我们已经创建了一个名为 "distros"的集合。
> db.createCollection("distros")
在这之后,我们添加了几个文件;每个文件指的是Linux的一个发行版。
> db.distros.insert([
{
title: "Debian",
description: "Linux distro",
num: 20,
cat: ["A", "B"]
},
{
title: "Ubuntu",
description: "Debian distro",
num: 15,
cat: ["B", "D"]
},
{
title: "AntiX",
description: "Debian distro",
num: 10,
cat: ["C", "D"]
}
])
插入后,下面的命令将显示 "distros"集合中的文件。
> db.distros.find().pretty()
注意:以上步骤是可选的;如果你已经在数据库中创建并插入了文档;那么你可以进入下一节。
例1:在一个字段中匹配一个字符串值
linuxhint"数据库中的 "distros"集合包含三个文档;例如,下面提到的命令可以用来获取那些 "description"值为 "Debian distro"的文档。
> db.distros.find({description:{$eq:"Debian distro"}}).pretty()
或者上面的查询也可以用下面提到的查询代替;它执行的操作和上面的一样。
> db.distros.find({description: "Debian distro"}).pretty()
例2:在一个字段中匹配一个数组值
有两种方法可以使用$eq操作符来匹配一个字段中的数组值。这个例子是指从一个数组字段中匹配一个单一的数组值。在我们的例子中,下面提到的命令将显示那些在 "cat"字段中只匹配 "C"值的文档。
> db.distros.find({cat: {$eq: "C"}}).pretty()
此外,下面的MongoDB查询将显示在 "cat"字段中有 "A"和 "B"值的文档。
> db.distros.find({cat: {$eq: ["A", "B"]}}).pretty()
或者你也可以通过以下方式执行上述命令;在这两种情况下,输出结果都是一样的。
> db.distros.find({cat: [“A”, “B”]}).pretty()
例3:在一个字段中匹配一个数字值
在$eq操作符的帮助下,你也可以匹配数字值;例如,"distros"集合中的文档包含一个包含数字值的字段 "num":因此,下面的命令将显示匹配 "num=10"的文档。
> db.distros.find({num: {$eq: 10}}).pretty()
注意 例子中的**pretty()**方法是用来获得命令的清晰输出的。
总结
MongoDB支持一长串属于比较、逻辑和元素类别的运算符。"比较查询类"的运算符被实践用来提供比较后的输出。在这篇文章中,描述了使用eq操作符检索的字段的数据类型包括字符串、数组和数字。