java - 如何从 mongoDB 对象打印迭代值

标签 java mongodb loops iterator

我有来自 MongoDB 的值并存储在 DBObject 中。之后,我对其进行find,如下面的代码所示 -

for (String abc: listA) {

    BasicDBObject f1 = new BasicDBObject("lk", abc);
    DBObject test = container.findOne(f1);

    for (String key: test.keySet()) {
        System.out.println("key: " + key+ " value: " + test.get(key)); //Line1
    }

    // how to iterate test.get(key) and prints out all the values one by one
}

第1行我在控制台上打印出以下内容:

key: mystic value: [ "notAThingToSee" , "everyThingIsPossible"]

现在,我需要以这样的方式迭代 test.get(key) ,以便它在新行中一一打印出数据,如下所示 -

notAThingToSee
everyThingIsPossible

这可以做到吗?我尝试这样做,但出现错误 foreach 不适用于 java.lang.Object

for (Object ss : test.get("mystic")) {
    System.out.println("SS: " + ss); //Line 2
}

最佳答案

value 数组将以 BasicDBList 的形式返回,而不是对象数组。尝试类似的东西(还没有编译这个...):

DBObject test = container.findOne(f1);
BasicDBList values = (BasicDBList) test.get("value");

for (Object value : values) {
    System.out.println(value);
}

关于java - 如何从 mongoDB 对象打印迭代值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24003281/

相关文章:

java - Cassandra - 无法启动,错误为 "Insufficient disk space to write 572 bytes"

java - 为什么 null 不是编译时常量?

javascript - 在 Meteor 中,如何在给定年、月、日的集合中查找记录?

node.js - 如何流式传输 API 响应而不是将其全部加载到 RAM 中

java - Foreach in foreach 从列表中删除项目

loops - 错误处理问题

java - ActiveJDBC:save() 只为自动生成的主键生成插入?

java - 如何跳过某些处理程序并直接转到netty中的特定处理程序

node.js - 分布式信号量系统,用于序列化不能同时运行的任务

java - Android - 数组进入 ImageView 无循环