检索不同的值 - mongodb

时间:2017-07-13 15:26:10

标签: mongodb spring-boot

我已经在spring boot中创建了一个项目,我可以使用mongo repository从我的mongodb数据库中检索数据。

我想在我的春季启动应用程序中编写一个查询,它允许我获取另一个属性的给定值的属性的不同值。

示例

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

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

有什么解决方案吗?

1 个答案:

答案 0 :(得分: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>