【发布时间】:2015-11-18 14:14:58
【问题描述】:
假设我有以下书籍集合(为了紧凑而删除了 ID 字段):
{ "author" : "Steve Jones", "title" : "Fun Stuff", "edition" : "2010" }
{ "author" : "Steve Jones", "title" : "Fun Stuff", "edition" : "2011" }
{ "author" : "Steve Jones", "title" : "Boring Stuff", "edition" : "2010" }
{ "author" : "Ben Johnson", "title" : "Other Stuff", "edition" : "2010" }
如果我只想找到每本书的最新版本,我应该怎么做?换句话说:我想得到一个结果,它省略了 2010 年版的史蒂夫·琼斯的 Fun Stuff,并且只有 2011 年版:
{ "author" : "Steve Jones", "title" : "Fun Stuff", "edition" : "2011" }
{ "author" : "Steve Jones", "title" : "Boring Stuff", "edition" : "2010" }
{ "author" : "Ben Johnson", "title" : "Other Stuff", "edition" : "2010" }
如果这是一个关系数据库并且我正在编写查询,我可能会编写类似SELECT DISTINCT title, DISTINCT author, edition WHERE 1 SORT BY edition DESC 的内容。所以我来自 SQL 背景的直觉是查找db.collection.distinct(),但它的工作方式似乎与我习惯的完全不同;它只返回一个数组,其中包含该单个字段的每个不同值。
这是我需要以编程方式解决的问题吗?或者我可以完全使用 mongo 函数和 bson 来做到这一点吗?
【问题讨论】:
-
stackoverflow.com/questions/23119692/… 可以看看这个作为参考吗?
-
哦,嘿,看着我,问已经回答的问题。这不是 exact 相同类型的问题,但它仍然具有我正在寻找的内容。谢谢@Shih-MinLee。
-
没有问题的人很高兴它有帮助
标签: mongodb mongodb-query bson