如何使用java显示mongoDB阵列

如何使用java显示mongoDB阵列,java,mongodb,Java,Mongodb,我想从mongoDB获取数组元素并显示它,这是我的示例代码 String[] previliges = new String[20]; String g_name = (String)jComboBox2.getSelectedItem(); DBCursor f; BasicDBObject query = new BasicDBObject("group_name", g_name); connection.MongoConnection con = new MongoConnection

我想从mongoDB获取数组元素并显示它,这是我的示例代码

String[] previliges = new String[20];
String g_name = (String)jComboBox2.getSelectedItem();
DBCursor f;
BasicDBObject query = new BasicDBObject("group_name", g_name);

connection.MongoConnection con = new MongoConnection();
con.createConnection();
con.selectDB("test", "user_group");

f = con.coll.find(query);
previliges = (String[])f.next().get("privileges");
System.out.println(previliges.length);
这给了我一个例外->com.mongodb.BasicDBList不能转换为[Ljava.lang.String

mongodb集合中的我的示例文档:

{    
    "_id" : ObjectId("51c7ebd9e4b096449a530024"),  
    "group_name" : "assss",  
    "privileges" : [  
        "View Log History",  
        "Communication"  
    ]  
}

特权数组将作为基本列表返回,而不是字符串数组。因此不能将其强制转换为字符串[]

而不是做:

previliges=(String[]) f.next().get("privileges");
System.out.println(previliges.length);
尝试:

您可以像遍历任何列表一样遍历该列表:

for (Object privilege : privileges) {
    String privilegeAsString = (String) privilege;
}
看见
for (Object privilege : privileges) {
    String privilegeAsString = (String) privilege;
}