MongoDB 罗盘:select 个不同的字段值
MongoDB Compass: select distinct field values
我正在使用 MongoDB Compass,但没有 Mongo Shell。我需要使用 MongoDB Compass 工具构建一个查询,以 select 来自我的集合的 "genre" 字段的不同值。
示例输入:
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c34e"},"title":"Bateau-mouche sur la Seine","year":{"$numberInt":"1896"},"imdbId":"tt0000042","genre":["Documentary”,”Short”],"viewerRating":{"$numberDouble":"3.8"},"viewerVotes":{"$numberInt":"17"},"director":"Georges Mlis"}
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c340"},"title":"Watering the Flowers","year":{"$numberInt":"1896"},"imdbId":"tt0000035","genre":["Short”],"viewerRating":{"$numberDouble":"5.3"},"viewerVotes":{"$numberInt":"33"},"director":"Georges M�li�s"}
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c34a"},"title":"The Boxing Kangaroo","year":{"$numberInt":"1896"},"imdbId":"tt0000048","genre":["Short”],"viewerRating":{"$numberDouble":"5.2"},"viewerVotes":{"$numberInt":"48"},"director":"Birt Acres"}
预期产出:纪录片,短片
您可以通过 Compass 中的聚合框架执行此操作,在 $group 阶段使用 $unwind and $group. The $unwind is performed to create a unique document for each element in the target array, which enables the $addToSet 运算符,然后将流派捕获为不同的元素。
管道:
[
{
$unwind: {
path: '$genre',
preserveNullAndEmptyArrays: true
}
},
{
$group: {
_id: null,
uniqueGenres: { $addToSet: '$genre' }
}
}
]
有关指南针示例,请参见下面的屏幕截图:
我正在使用 MongoDB Compass,但没有 Mongo Shell。我需要使用 MongoDB Compass 工具构建一个查询,以 select 来自我的集合的 "genre" 字段的不同值。
示例输入:
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c34e"},"title":"Bateau-mouche sur la Seine","year":{"$numberInt":"1896"},"imdbId":"tt0000042","genre":["Documentary”,”Short”],"viewerRating":{"$numberDouble":"3.8"},"viewerVotes":{"$numberInt":"17"},"director":"Georges Mlis"}
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c340"},"title":"Watering the Flowers","year":{"$numberInt":"1896"},"imdbId":"tt0000035","genre":["Short”],"viewerRating":{"$numberDouble":"5.3"},"viewerVotes":{"$numberInt":"33"},"director":"Georges M�li�s"}
{"_id":{"$oid":"58c59c6a99d4ee0af9e0c34a"},"title":"The Boxing Kangaroo","year":{"$numberInt":"1896"},"imdbId":"tt0000048","genre":["Short”],"viewerRating":{"$numberDouble":"5.2"},"viewerVotes":{"$numberInt":"48"},"director":"Birt Acres"}
预期产出:纪录片,短片
您可以通过 Compass 中的聚合框架执行此操作,在 $group 阶段使用 $unwind and $group. The $unwind is performed to create a unique document for each element in the target array, which enables the $addToSet 运算符,然后将流派捕获为不同的元素。
管道:
[
{
$unwind: {
path: '$genre',
preserveNullAndEmptyArrays: true
}
},
{
$group: {
_id: null,
uniqueGenres: { $addToSet: '$genre' }
}
}
]
有关指南针示例,请参见下面的屏幕截图: