java – Mongodb选择所有字段按一个字段分组并按另一个字段排序
发布时间:2020-12-14 16:45:39 所属栏目:Java 来源:网络整理
导读:我们有以下字段的集合’消息’ _id | messageId | chainId | createOn1 | 1 | A | 1552 | 2 | A | 1853 | 3 | A | 2254 | 4 | B | 2265 | 5 | C | 2286 | 6 | B | 300 我们希望按照以下标准选择所有文档字段 通过字段’chainId’进行干扰 按desc顺序按’crea
我们有以下字段的集合’消息’
_id | messageId | chainId | createOn 1 | 1 | A | 155 2 | 2 | A | 185 3 | 3 | A | 225 4 | 4 | B | 226 5 | 5 | C | 228 6 | 6 | B | 300 我们希望按照以下标准选择所有文档字段 >通过字段’chainId’进行干扰 所以,预期的结果是 _id | messageId | chainId | createOn 3 | 3 | A | 225 5 | 5 | C | 228 6 | 6 | B | 300 我们在java应用程序中使用spring-data.我尝试采用不同的方法,到目前为止没有任何帮助. 解决方法
您想要的是可以通过聚合框架实现的功能. (对其他人有用)的基本形式是:
db.collection.aggregate([ // Group by the grouping key,but keep the valid values { "$group": { "_id": "$chainId","docId": { "$first": "$_id" },"messageId": { "$first": "$messageId" },"createOn": { "$first": "$createdOn" } }},// Then sort { "$sort": { "createOn": -1 } } ]) 这样就可以在“messageId”的不同值上“分组”,同时为每个其他字段获取 有关使用的更多信息,请参阅MongoDB (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |