Sto usando MongoDB 3.0. supponiamo che ci sia un insieme di documenti denominati photos
, la sua struttura ècome chiamare l'operazione di conteggio dopo aver trovato con il driver java mongodb
{"_id" : 1, photographer: "jack"}
con database.getCollection("photos")
, MongoDB restituisce un oggetto MongoCollection
, su cui ho il metodo count()
per ottenere i documenti numero restituito.
Tuttavia, quando faccio domande con condizioni specifiche. Per esempio trovare documenti con ID minore di 100:
photosCollections.find(Document.parse("{_id : {$lt : 100}}"))
Sopra find
metodo restituirà sempre un cursore che non prevede una funzione count()
. Quindi, come posso sapere quanti documenti sono stati restituiti? So che in linea di comando, posso usare
db.photos.find({_id : {$lt : 100}}).count()
Naturalmente, posso passare attraverso l'iteratore e contare il numero di documenti me stesso. Comunque lo trovo davvero maldestro. Mi chiedo se il driver java MongoDB fornisca tale funzionalità per contare il numero di documenti restituiti dal metodo find()
? In caso negativo, qual è la ragione alla base della decisione?
Sì, il metodo count() è stato fornito in MongoDB 2.0, ma è stata rimossa in MongoDB 3.0. Non so quale sia la ragione ...... –
@EnsomHodder http://mongodb.github.io/mongo-java-driver/3.0/driver/getting-started/quick-tour/ Si noti la 3.0 nell'URL . Testato, funziona. –
Il Querybuilder non esiste – PedroD