我想从 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);
它给了我一个异常(exception) -> com.mongodb.BasicDBList 不能转换为 [Ljava.lang.String;
我来自 mongodb 集合的示例文档:
{
"_id" : ObjectId("51c7ebd9e4b096449a530024"),
"group_name" : "assss",
"privileges" : [
"View Log History",
"Communication"
]
}
最佳答案
特权数组将返回为 BasicDBList,而不是字符串数组。所以你不能将它转换为 String[]。
而不是做:
previliges=(String[]) f.next().get("privileges");
System.out.println(previliges.length);
尝试:
BasicDBList privileges = (BasicDBList) f.next().get("privileges");
System.out.println(privileges.size());
您可以像遍历任何列表一样遍历它:
for (Object privilege : privileges) {
String privilegeAsString = (String) privilege;
}
关于java - 如何使用java显示mongoDB数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17320300/