在 MongoDB 中返回唯一值
在本文中,我们将解决如何使用 MongoDB distinct() 方法返回唯一值。 此外,还讨论了返回数组和字段中的唯一值。
在 MongoDB 中,有时您可能希望呈现或返回唯一值,您可以使用 distinct() 方法来实现。
distinct()
方法为单个集合或视图中的所有集合或视图的给定字段生成不同值的数组,并帮助您为 mongo shell 中指定的字段返回唯一值。
MongoDB 中的 distinct() 函数
语法:
db.collection.distinct(field, query, options)
在 MongoDB 中,该函数必须有两个必要的参数,称为字段和查询运算符。 field 参数是您希望 distinct() 方法在其中获取唯一值的字段。
查询参数指定应从中获取不同值的文档。 您可以向该函数发送抵押选项参数。
请注意
,如果指定字段的值是一个数组,则distinct()
会将每个数组元素视为一个单独的值。 例如,如果字段的值为 [10, [10], 10],distinct() 会将 10、[10] 和 10 视为单独的值。
使用 distinct() 函数返回唯一值
让我们使用 distinct()
函数返回 MongoDB 中的唯一值。 下面的集合将用于第一个示例。
db.movies.find().pretty()
{
"_id" : ObjectId("60322d3501cd70079c48cb65"),
"title" : "Enchanted",
"year" : 2006,
"score" : 10,
"rating" : "PG",
"__v" : 0
}
{
"_id" : ObjectId("60322d3501cd70079c48cb67"),
"title" : "Final Destination II",
"year" : 2015,
"score" : 10,
"rating" : "PG-13",
"__v" : 0
}
{
"_id" : ObjectId("6190189ef5c8903629012fe1"),
"title" : "Fifty Shades of Grey",
"year" : 2015,
"score" : 10,
"rating" : "NC-17",
"__v" : 0
}
为 MongoDB 中的字段返回唯一或不同的值
上面的电影集合返回此示例中指定字段的唯一值。 假设您想要评级字段中的唯一值。
查询:
db.movies.distinct( "rating" )
[ null, "", "NC-17", "PG", "PG-13"]
使用上述查询后,distinct()
函数已成功帮助您在 MongoDB 中为集合返回唯一值。
为 MongoDB 中的嵌入式字段返回唯一值
在此示例中,显示了为嵌入字段返回唯一值。 但是,上一个示例中使用的集合不包含嵌入字段。
因此,将使用一个新的集合,如下所示。
db.drones.find().pretty()
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0c"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "Nimbari Gryphon Medeta 65",
"price" : 77500,
"weight" : "77 kilograms",
"additionalDetails" : {
"material" : "carbon fiber",
"moreUses" : [
"Precision Agriculture",
"Land Inspection",
"Water Inspection",
"Cinematography"
]
}
}
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0d"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "X-Strimmer Eye",
"price" : 23500,
"weight" : "24 kilograms",
"additionalDetails" : {
"material" : "glass fiber",
"moreUses" : [
"Precision Agriculture",
"Cinematography"
]
}
}
{
"_id" : ObjectId("61673f46b34f185eb7b2bf0e"),
"utility" : [
"Natural Resource Exploration",
"Remote sensing",
"Real estate and construction",
"Recreation",
"Delivery"
],
"onSale" : false,
"name" : "Khai Balemosh Shefqa TRX",
"price" : 120500,
"weight" : "80 kilograms",
"additionalDetails" : {
"material" : "aluminum",
"moreUses" : [
"Precision Agriculture",
"Land Inspection"
]
}
}
以下查询可以从上述数据库集合中的所有嵌入字段返回唯一值。
查询:
db.drones.distinct( "additionalDetails.material" )
[ "aluminum", "carbon fiber", "glass fiber"]
返回嵌入式数组字段的唯一值
使用 distinct() 函数,您可以使用上面的相同集合,使用 distinct() 函数从嵌入式数组字段返回唯一值。
查询:
db.drones.distinct( "additionalDetails.moreUses" )
["Cinematography","Land Inspection"]
在这篇 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 进行开始查询。 它为查询中的模式匹配字符串提供正则表达式功能。