2015-11-02 15 views
5

私のコードは、クライアントから送信されたクエリをサポートする必要があります。クライアントはjsonとしてクエリを送信します。私は春のデータにMongoDBで初心者だとして、私は次のコードを使用して、この使用してJavaのmongoドライバの低レベルAPI、
BasicDBObject queryObject = (BasicDBObject) JSON.parse(whereJson.toString());
を行っている、私はどちらか、クエリまたは条件クラスで同様の解決策を見つけることができません。私は別のチュートリアルをチェックして、何も見つけることができませんでした。それは春のデータmongodbで行うことが可能ですか、私は低レベルapis自体を使用する必要がありますか?jsonストリングによるSpringデータのmongodbクエリ

答えて

6

あなたはBasicQueryオブジェクトを使用して、プレーンなJSON文字列からクエリのインスタンスを作成することができます。次の例は、プレーンなJSON文字列からクエリのインスタンスを作成する方法を示しています

BasicQuery query = new BasicQuery("{ age : { $lt : 50 } }"); 
List<Person> result = mongoTemplate.find(query, Person.class);  

低レベルAPIを使用して別の方法:

DBObject dbObject = (DBObject) JSON.parse(query); 
DBCursor cursor = mongoTemplate.getCollection("person").find(dbObject); 

をあなたは戻っへの戻りオブジェクトをマッピングすることができますPerson POJOをMongoConverterのread()メソッドを使用して呼び出します。

List<Person> returnList = new ArrayList<Person>(); 
while (cursor.hasNext()) { 
    DBObject obj = cursor.next(); 
    Person person = mongoTemplate.getConverter().read(Person.class, obj); 
    returnList.add(person); 
} 
+2

Wow。ありがとう。私は立ち往生して解決策を待っていました。 db.CollectionName.aggregate([{:{ "ST":$マッチの "i"}}のような集計クエリをサポートする方法:) –

+1

おかげで、{ $ group:}、{} ..])...? – chridam

+0

@chridamこんにちは、助けて幸せはありません心配@Mohammedshebinたくさん:) –

関連する問題