2017-07-13 7 views
0

私はすでに春の起動時にプロジェクトを作成しています。私はmongobリポジトリを使用してmongodbデータベースからデータを取得できます。別の値を取得する - mongodb

私は別の属性の特定の値の属性の別の値を取得することができます私の春のブートアプリケーションでクエリを記述したいと思います。

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

: 私はTAG1変数の値MOD1を用いる方法のfindbyTag1(文字列TAG1)を呼び出したとき、私はTAG2の別個の値を取得したいです。この場合、結果はtest1になります。

解決方法はありますか?

答えて

0

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> 
関連する問題