2015-11-17 87 views
4

我用蒙戈驅動程序的Java版本是2.x的結果,並傳遞給3.1。 DBCursor已被廢棄,我不得不使用FindIterable<Document>結構。FindIterable <Document>如何獲得總記錄查詢

當我執行查詢

FindIterable<Document> cursor=(mongo).getCollection().find(findArgs).limit(10).skip(0); 

我想獲得的記錄與查詢結果集的總數的計數發現只有一個查詢。

我怎麼可以檢索,而不執行另一個查詢計數? 我不說話的10條記錄的限制,但總記錄數。

我想執行一個查詢檢索次數和發現。我不想執行查找和計數。

謝謝

回答

1

有計數方法可用。 它接受Bson濾鏡。所以在獲得集合對象之後,你可以直接使用count函數。 MongoCollection collection = db.getCollection(collectionName); long totalFilteredRecords = collection.count(「field」,「value」);

1

您可以使用此:

(mongo).getCollection().count(findArgs); 
+1

雖然這個代碼片斷可以解決的問題,[包括說明](// meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高您的文章質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。也請儘量不要用解釋性註釋來擠佔代碼,這會降低代碼和解釋的可讀性! – kayess

0

雖然這個問題是舊的,你可能已經發現你的答案,我會後這對像我這樣的新手,誰是掙扎的小,因爲這東西。 沒有任何查詢,你可以直接使用「計數」

mongoClient = new MongoClient("localhost", 27017); 
       DB db = mongoClient.getDB("DatabaseName"); 
       DBCollection coll = db.getCollection("CollectionName"); 
       long count = coll.count(); 

希望它能幫助!