2015-11-02 23 views
5

Kodumun, istemci tarafından gönderilen sorguları desteklemesi gerekiyor. İstemci sorguyu json olarak gönderiyor olacak. i bahar veri MongoDB bir acemi olduğum için ben aşağıdaki kodu kullanarak bu kullanarak java Mongo sürücüsü düşük seviye api,
BasicDBObject queryObject = (BasicDBObject) JSON.parse(whereJson.toString());
yapmış, ben ya Sorgu veya Kriterler sınıflarında benzer bir çözüm bulamıyorum. Farklı öğreticileri kontrol ettim ve bulamadım. Bahar verisinde mongodb yapmak mümkün mü yoksa düşük seviyeli apis kullanmalı mıyım?Yay verileri mongodb sorgusu ile json dizesi

cevap

6

Sen BasicQuery nesnesini kullanarak bir düz JSON dize gelen Sorgu örnekler de oluşturabilirsiniz.

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

düşük seviyeli API kullanan bir başka yolu ve:

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

Daha sonra dönüşünü eşleyebilir nesneleri geri Aşağıdaki örnek düz bir JSON dize gelen bir sorgu örneğini oluşturmak nasıl gösterir MongoConverter kullanarak Kişi POJO okumak() yöntemi:

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

Vay. Bunun için teşekkürler . Takılıp bir çözüm bekledim. {, Teşekkürler mutlu bir sürü :) Yok endişeleri @Mohammedshebin –

+1

, @chridam Merhaba, Nasıl db.CollectionName.aggregate gibi ([{ "i"}: { "st" $ maçı} agrega sorgu desteklemek için :) – chridam

+0

yardım etmek $ group:}, {} ..]) ...? Yay Verileri MongoDB içinde –