小编ApJ*_*pJo的帖子

从MongoDB和Java中的DbCursor创建一个列表

我试图使用游标迭代文档,我想将它们存储在列表中,然后返回类型DBOject的列表.

这是我正在尝试的:

public List<DBObject> getResultsInDescendingOrderByDate(int limit) {

        List<DBObject> myList = null;
        DBCursor myCursor=myCollection.find().sort(new BasicDBObject("date",-1)).limit(10);
        try {
        while(myCursor.hasNext()) {

                System.out.print(myCursor.next());
               myList.add(new BasicDBObject("_id",(String) myCursor.curr().get("_id"))
                        .append("title",(String) myCursor.curr().get("title"))
                        .append("author",(String) myCursor.curr().get("author"))
                        .append("permalink",(String) myCursor.curr().get("permalink"))
                        .append("body",(String) myCursor.curr().get("body"))
                        .append("comment",new BasicDBObject("comments",(String) myCursor.curr().get("comments")))
                                .append("tags",new BasicDBObject("tags",(String) myCursor.curr().get("tags"))
                                .append("date",(Date) myCursor.curr().get("date"))));
                myCursor.next();
            }
        }

        finally {
            myCursor.close();
        }


        return myList;
    }
Run Code Online (Sandbox Code Playgroud)

我不知道如何将数据类型转换为光标中的原始数据类型.我试着搜索,但没有线索.

请帮忙.

谢谢

java mongodb

9
推荐指数
2
解决办法
2万
查看次数

无法从 MongoDB 中的文档数组中删除最低分数

这就是我的收藏的样子:

db.students.find({_id:100}).pretty()
{
    "_id" : 100,
    "name" : "Demarcus Audette",
    "scores" : [
        {
            "type" : "exam",
            "score" : 30.61740640636871
        },
        {
            "type" : "quiz",
            "score" : 14.23233821353732
        },
        {
            "type" : "homework",
            "score" : 31.41421298576332
        },
        {
            "type" : "homework",
            "score" : 30.09304792394713
        }
    ]
}
Run Code Online (Sandbox Code Playgroud)

我正在 Mongo shell 上执行以下 2 个查询:

x=db.students.aggregate( [{ "$unwind":"$scores" },{"$match":{"scores.type":"homework"}},{ "$group":{"_id":"$_id","minscore":{"$min":"$scores.score" }}} ] )
Run Code Online (Sandbox Code Playgroud)

下一个是:

for (var a in x["a"]) { db.students.update( { "_id":a["_id"] },{"$pull":{"scores":{"score":a["minscore"]}}} ) }
Run Code Online (Sandbox Code Playgroud)

我可以看到最低分数列表,但是当我执行第二个查询时,似乎没有任何内容被删除。我知道有逻辑错误。我试图阅读这里的帖子,但我无法通过它。我只是想知道我哪里出了问题。

java mongodb

3
推荐指数
1
解决办法
3458
查看次数

标签 统计

java ×2

mongodb ×2