【问题标题】:retrieve distinct values - mongodb检索不同的值 - mongodb
【发布时间】:2017-12-18 11:59:42
【问题描述】:

我已经在 Spring Boot 中创建了一个项目,我可以使用 mongo 存储库从我的 mongodb 数据库中检索数据。

我想在我的 Spring Boot 应用程序中编写一个查询,允许我为另一个属性的给定值获取一个属性的不同值。

例子

 tag1 | tag2  |  tag3
 mod  | test  |  v1
 mod1 | test1 |  v2
 mod1 | test1 |  v3
 mod1 | test1 |  v4

预计: 当我使用值 mod1 为 tag1 变量调用方法 findbyTag1 (字符串 tag1)时,我想获得 tag2 的不同值。在这种情况下,结果将是 test1。

有什么办法吗?

【问题讨论】:

    标签: mongodb spring-boot


    【解决方案1】:

    MongoDB 查询:-

    db.tags.distinct("tag2",{"tag1" : "mod1"});
    

    等效的 Java 代码:-

    请相应地更改数据库和集合名称。

    import org.bson.Document;
    
    import com.mongodb.MongoClient;
    import com.mongodb.client.DistinctIterable;
    import com.mongodb.client.MongoCollection;
    import com.mongodb.client.MongoDatabase;
    import com.mongodb.client.model.Filters;
    
    public class GetDistinctTagsValues {
        public static void main(String[] args) {
    
            MongoClient client = new MongoClient();
    
            MongoDatabase database = client.getDatabase("test");
    
            MongoCollection<Document> collection = database.getCollection("tags");
    
            DistinctIterable<String> collectionData = collection.distinct("tag2", Filters.eq("tag1", "mod1"), String.class);
    
            for (String doc : collectionData) {
                System.out.println(doc);
            }
    
            client.close();
    
        }
    
    }
    

    依赖:-

        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>3.4.2</version>
        </dependency>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-03
      • 1970-01-01
      • 1970-01-01
      • 2017-09-19
      • 1970-01-01
      相关资源
      最近更新 更多