【问题标题】:Distinct values from mongo db?mongo db的不同值?
【发布时间】:2014-05-29 22:29:46
【问题描述】:

我想从 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,这是正确的。但我怎样才能获得这 2 个唯一值的所有行值。 因为我需要在 jsp 文件中使用这两个唯一值的所有值。 请帮帮我。

【问题讨论】:

  • 你要获取的 json 文档结构是什么?

标签: java mongodb aggregation-framework


【解决方案1】:
collection.distinct('appName')

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

collection.find({})

如果您不确定每个文档都存在该字段,那么您只想记录该字段存在的文档

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

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

【讨论】:

    猜你喜欢
    • 2022-10-04
    • 2019-10-13
    • 1970-01-01
    • 1970-01-01
    • 2014-07-31
    • 2017-10-30
    • 2020-10-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多