繁体   English   中英

如何使用Java在mongodb中嵌入元素

[英]How to get embedding elements in mongodb using Java

我的json数据如下:

"scores": [
    {
        "type": "exam",
        "score": 1
    },
    {
        "type": "quiz",
        "score": 2
    },
    {
        "type": "homework",
        "score": 3
    },
    {
        "type": "homework",
        "score": 4
    }
]

我正在使用下面的代码来检索只有得分。

while(cursor.hasNext())
    { 

        BasicDBObject acc=( BasicDBObject) cursor.next();
        acc.get("scores");
        for(int i=0;i<=acc.size();i++)
        {
            ((BSONObject) acc.get(i)).containsField("score");
        }
        //System.out.println(acc);

    }

我得到零点异常。 怎么了?

这是你必须要做的:

 while(cursor.hasNext())
    {

        BasicDBObject acc=(BasicDBObject) cursor.next();
        BasicDBList scores = (BasicDBList) acc.get("scores");
        for(int i=0;i<scores.size();i++)
        {
            BasicDBObject score = (BasicDBObject) scores.get(i);
            System.out.println(score.get("score"));
        }

    }

几点说明:

  • 你需要循环得分数组(我假设它是数组)而不是BasicDBObject本身。 因此,您需要将其BasicDBListBasicDBList 否则你将不得不防止Cast Exceptions
  • Java数组元素来自0 ... size() - 1。 所以在你的循环中使用<而不是<=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM