2013-05-23 13 views
8

count Spring Data MongoDB deposunda @Query ek açıklamasını kullanmak için herhangi bir mekanizma var mı? Ben hepsini almak zorunda kalmadan sahip olduğum belge sayısını almak isterim.Spring Data'da sayım MongoDB deposu

Temelde, Java bunun eşdeğeri:

db.test.find({"type":"foo"}).count 

cevap

17

Benim için bu çözümler bir çekicilik gibi çalışır (yay-data-mongodb 1.3.1.RELEASE kullanarak), Sadece aynı problemi çözdüm ve böyle çözdüm (iş yerindeki kodumdan kısa bir snippet) :

@Query(value = "{'productDetails.productType': {$regex: ?0, $options: 'i'}, 'sourceDescriptor': ?1}", count = true) 
public Long countFetchedDocumentsForCategory(String cat, String sourceDescriptor); 
+0

yay-data-mongodb: 1.4.1.RELEASE ayrıca @Param açıklamalarının –

1

Geçenlerde aynı sorun vardı ve ne yazık ki herhangi bir çözüm, en azından mevcut kararlı sürümü bulamadık. Spring Data JPA 1.4M1'deki it is possible gibi görünüyor, bu yüzden Spring Data MongoDB'nin bir sonraki versiyonunda da yer alacaktır.

+0

Peki görün, gerçekten olursa bkz lest's. Cevabınız için teşekkürler! – paul

20

başka bir yolu da bu kullanarak MongoRepository sorgu şablonları yapmak:

public interface MyRepository extends MongoRepository<MyClass, String> { 
    Long countByLastname(String lastname); 
} 

http://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repositories.query-methods.details

+0

parametrelerine eklenmesini istemektedir. Bu kabul edilen cevap olmalıdır. Doküman sağladığınız için teşekkür ederiz; Bunun için çok uzun süredir çalışıyorum: http://docs.spring.io/spring-data/data-mongo/docs/1.4.2.RELEASE/reference/html/mongo.repositories.html – lux