java - 如何在java中对复杂集合mongodb中的列表进行排序和获取?

标签 java mongodb

这是我在 mongodb 中的数据库集合

{
    "_id" : 0,
    "name" : "+Anima",
    "author" : "MUKAI Natsumi",
    "type" : [ 
        "Adventure", 
        "Fantasy"
    ],
    "chapters" : [ 
        {
            "chapterName" : "+Anima 56",
            "chapterLink" : "http://...",
            "groupTranslate" : "Manga Palace Group",
            "dateUpload" : 1359478800000,
            "chapterNumber" : 56.0000000000000000,
            "images" : [ 
                 "img0", 
                "img1", 
                "img2", 
                "img3"
            ]
        }, 
        {
            "chapterName" : "+Anima 55",
            "chapterLink" : "http://....",
            "groupTranslate" : "Manga Palace Group",
            "dateUpload" : 1410109200000,
            "chapterNumber" : 55.0000000000000000,
            "images" : [ 
                "img0", 
                "img1", 
                "img2", 
                "img3"
            ]
        }
    ]
}   

我无法使用java代码在mongodb中找到按“dateUpload”排序的列表章节。请帮忙。

最佳答案

蒙戈 $aggregation 将解决您的问题。下面先查询$unwind您的 chapters 数组,然后对 dateUpload

进行排序
    db.collectionName.aggregate({
    "$unwind": "$chapters" // unwind breaks the chapters array
}, {
    "$sort": {
    "chapters.dateUpload": -1 // then seperated chapters array sorted by dateUpload
    }
}, {
    "$group": {
    "_id": "$_id",
    "chapters": {
        "$push": "$chapters" // group used for grouping chapters array
    }
    }
}).pretty()

为了将上述查询转换为 Java 代码格式,请遵循下面的 mongo 聚合 Java 驱动程序代码。 Java Driver and Aggregation Framework

关于java - 如何在java中对复杂集合mongodb中的列表进行排序和获取?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29327931/

相关文章:

java - 如何找到数组中的下一个可用插槽?

java - 安卓开发 : Run TimerTask in UI Thread

javascript - mongo 查找数组中至少一项不存在于另一项中的文档

mongodb - 如何在 mongodb 中执行 Stringify id 和 ObjectId 之间的 $lookup?

node.js - mongoose 是否允许同时处理多个数据库请求?

javascript - Mongo中查询嵌套列表是否存在

java - 我可以限制哪些类可以实现接口(interface)吗?

java - 文件 IO 期间出现 NullPointerException

java - 无论如何,有没有使用 selenium 在单个脚本中混合 ios 自动化和 Web 自动化

mongodb - Mgo 聚合管道 $not 运算符。未知的顶级运算符(operator)