关于MongoDB的全面概述以及我关于它的所有帖子,请查看我的概述。
如果你想在一个集合中的所有文档中找出一个字段的所有不同值,你可以使用现成的distinct 聚合方法来找出。
在一个名为podcasts 的集合中给定数据:
{
{
"name": "Tech Over Tea",
"episodeName": "#75 Welcome Our Hacker Neko Waifu | Cyan Nyan",
"dateAired": ISODate("2021-08-02"),
"listenedTo": true,
},
{
"name": "Tech Over Tea",
"episodeName": "Neckbeards Anonymous - Tech Over Tea #20 - feat Donald Feury",
"dateAired": ISODate("2020-07-13"),
"listenedTo": true
},
{
"name": "Tech Over Tea",
"episodeName": "#34 The Return Of The Clones - feat Bryan Jenks",
"dateAired": ISODate("2020-10-19"),
"listenedTo": false
}
}
如果你运行下面的命令:
db.podcasts.distinct("episodeName")
结果将是:
[
"#75 Welcome Our Hacker Neko Waifu | Cyan Nyan",
"Neckbeards Anonymous - Tech Over Tea #20 - feat Donald Feury",
"#34 The Return Of The Clones - feat Bryan Jenks"
]
注意,结果是字段episodeName 的所有不同值。
你也可以对一个查询结果做同样的操作:
db.podcasts.distinct("dateAired", {listenedTo: true})
将会返回:
[ISODate("2021-08-02"),ISODate("2020-07-13")]