为 MongoDB 集合中的所有文档选择单个或多个字段
随着互联网在全球的普及,数据以前所未有的速度产生。 由于它需要您从数据库中收集或请求必要的数据来进行分析,因此您必须选择合适的工具来查询数据。
在本文中,您将学习通过投影执行基本查询操作,为 MongoDB 集合中的所有文档选择单个或多个字段。
为 MongoDB 集合中的所有文档选择单个或多个字段
MongoDB 是一种非结构化的数据库管理系统,以文档的形式存储数据。 此外,MongoDB 在处理大量数据方面也非常成功。
它是使用最广泛的 NoSQL 数据库,因为它提供了全面的查询语言和通用且简单的数据访问。 例如,要限制 MongoDB 发送到应用程序的数据量,您可以包含一个投影文档来指定或限制要返回的字段。
投影可以显式包含多个字段。 在本文使用的以下示例中, find()
方法返回与查询匹配的所有文档。
projection 方法的语法如下:
db.collection.find( { <someOtherArray>: <condition> ... },
{ "<array>.$" : 1 } )
查询和投影文档中使用的数组必须具有相同的长度以确保预期的行为。 如果数组长度不同,在特定场景下可能会出错。
创建示例数据库
在开始之前,您将使用一些样本数据创建一个样本数据库来执行所有操作。 创建了一个名为 teams 的集合,并将以下记录插入到 teams 集合中。
该集合将用于本 MongoDB 教程文章中的所有示例。 集合如下:
db={
"teams": [
{
team: "Manchester City ",
position: "1st",
points: 70
},
{
team: "Liverpool",
position: "2nd",
points: 69
},
{
team: "Chelsea",
position: "3rd",
points: 59
},
{
team: "Arsenal",
position: "4th",
points: 54
},
{
team: "Tottenham",
position: "5th",
points: 51
},
{
team: "Manchester United",
position: "6th",
points: 50
}
]
}
使用 find() 方法查询文档
您将需要使用 find()
方法从 MongoDB 集合中查询文档。 例如,以下语句将从集合中检索所有文档。
假设您在一个文档中有一个包含大量数据的集合。 你有团队集合,你将只选择几个你想要的字段。
查询:
db.teams.find({});
输出:
使用投影法为 MongoDB 集合中的所有文档选择单个或多个字段
投影可以显式包含多个字段。 find()
方法将返回所有与以下操作中的查询匹配的页面。
如果只想从集合中检索选定的字段,可以使用投影方法。
为此,您首先需要了解下面给出的 MongoDB 查询语法:
db.collections.find(
// basic filtering based on the passed-in key values
{},
// selecting the fields
{}
);
第二个参数可以传递给 find() 方法。 它还将与 findOne() 方法一起使用。
现在让我们选择团队字段。 您将需要在这里学习更多技巧。 键将是您要选择的字段及其值。
选择字段时值为 1; 0 用于取消选择字段。
现在您可以查看下面给出的一些示例,以便更好地理解。
仅选择 Team 名称字段
下面给出的以下查询将用于此示例:
db.teams.find({},
{
team: 1
})
输出:
在这里,我们成功地只选择了 team 字段。 但是也有 _id
字段包含在你没有明确传递它的情况下。
但默认情况下,mongo 查询将始终具有 _id
字段。
取消选择 _id
字段
在下面的示例中,您可以尝试取消选择 _id
字段本身。
对此的查询如下:
db.teams.find({},
{
team: 1,
_id: 0
})
输出:
仅选择团队名称和积分字段
以下语句将仅获取团队名称和积分字段。
下面给出的以下查询将用于此示例:
db.teams.find({},
{
team: 1,
points: 1,
_id: 0
})
输出:
总结
因此,在完成本 MongoDB 教程之后,您了解了如何通过指定或限制要返回的字段的投影执行基本查询操作,为 MongoDB 集合中的所有文档选择单个或多个字段。
相关文章
在 MongoDB Shell 中列出所有数据库
发布时间:2023/05/11 浏览次数:180 分类:MongoDB
-
交互式 Mongo Shell 提供了多个用于获取数据的选项。 本文介绍了在 Mongo Shell 中列出数据库的几种不同方法。
MongoDB 中检查字段包含的字符串
发布时间:2023/05/11 浏览次数:1024 分类:MongoDB
-
这篇文章解决了如何在 MongoDB 中使用正则表达式来确定字段是否包含字符串。在 MongoDB 中使用正则表达式 正则表达式 (regex) 是定义搜索模式的文本字符串。
在 MongoDB 中 upsert 更新插入
发布时间:2023/05/11 浏览次数:214 分类:MongoDB
-
在 MongoDB 中,upsert 结合了更新和插入命令。 它可以在 update() 和 findAndModify() 操作中使用。MongoDB 中的 upsert 查询 upsert 采用单个布尔参数。
如何卸载 MongoDB
发布时间:2023/05/11 浏览次数:745 分类:MongoDB
-
要从您的计算机中卸载 MongoDB,您必须先删除 MongoDB 服务、数据库和日志文件。使用这篇 MongoDB 文章,您将能够从 Ubuntu Linux、Mac 和 Windows 卸载 MongoDB。 请务必保留数据备份,因为一旦卸载,便
在 MongoDB 中存储日期和时间
发布时间:2023/05/11 浏览次数:762 分类:MongoDB
-
本 MongoDB 教程解释了 Date() 对象是什么以及如何使用 Date() 方法对集合进行排序。 这也将帮助您找到在 MongoDB 中显示和存储日期/时间的最佳方法。
MongoDB 按 ID 查找
发布时间:2023/05/11 浏览次数:1856 分类:MongoDB
-
MongoDB 中的 find by Id() 函数用于获取与用户提供的 id 相匹配的文档。 如果找不到与指定 ID 匹配的文档,则返回空值。
检查 MongoDB 服务器是否正在运行
发布时间:2023/05/11 浏览次数:247 分类:MongoDB
-
这篇 MongoDB 教程将告诉您如何检查是否安装了 MongoDB 以及安装的 MongoDB 服务器的版本。 它在 Windows、UBUNTU 和 MAC 等不同的操作系统中实现。
MongoDB 中的分页
发布时间:2023/05/11 浏览次数:174 分类:MongoDB
-
这篇文章将介绍什么是 MongoDB 中的分页。 为什么在 MongoDB 中需要分页以及在 MongoDB 中完成分页的不同方法或方式是什么。
MongoDB 从查询开始
发布时间:2023/05/11 浏览次数:186 分类:MongoDB
-
在这篇 MongoDB 文章中,用户将学习如何使用 $regex 进行开始查询。 它为查询中的模式匹配字符串提供正则表达式功能。