来自mongo db的独特价值?

时间:2014-05-29 10:37:49

标签: java mongodb aggregation-framework

我想从mongo db获取唯一值。我已经尝试了很多,但找不到正确的解决方案。这就是我从mongo db获取值的方法。

    Mongo mongo = new Mongo("localhost", 27017);
    DB db = mongo.getDB("test");

    DBCollection collection = db.getCollection("testCollection");


    String hopKey = UUID.randomUUID().toString();           

    System.out.println("BasicDBObject example...");
    BasicDBObject document = new BasicDBObject();
    document.put("host", "http://localhost:5050");
    document.put("key", hopKey);
    document.put("appName", "BANK2");
    document.put("userId", "xym@gmail.com");         
    //collection.insert(document);

    List cursorDoc = collection.distinct("appName");
    System.out.println(cursorDoc.get(0).toString());

这给我的列表大小为2是正确的。但是如何获得这两个唯一值的所有行值。 因为我需要在jsp文件中使用这两个唯一的值。 请帮帮我。

1 个答案:

答案 0 :(得分:0)

collection.distinct('appName')

将为您提供该特定fieldName存在的集合中的所有不同值。如果您知道所有文档都有某种价值,那么您可以这样做

collection.find({})

如果您不确定每个文档的字段是否存在,那么您只想要存储该字段的文档

collection.find({'appName' : {'$exists' :true}})

这将为您提供定义了“appName”字段的所有文档,并且该值将是您期望从collection.distinct('appName')命令中获得的两个值之一