0
我有問題,哪種計數方法更快: 我有一些名爲filterParameters的過濾器參數。 現在我做:Mongo指望收集或計算光標 - 更快
1. First option:
int count = count with db.dbCollection.count(filterParameters)
and then
dbCursor = db.dbCollection.find(filterParameters).skip(..).limit(..)
2. Second way:
dbCursor = db.dbCollection.find(filterParameters).skip(..).limit(..)
int count = dbCursor.count()
而且在Java中,第一種方式:
Integer countAllItems = documentService.count(documentType,filterQuery)
DBCursor documents = documentService.list(documentType, [:], filterQuery, sortQuery, command.start, command.count)
其中:documentService.count(documentType,filterQuery)
做:
def collection = db.getCollection(documentType.collectionName)
collection.count(filterQuery)
和documentService.list只找到集合。
然後第二種方式:
DBCursor documents = documentService.list(documentType, [:], filterQuery, sortQuery, command.start, command.count)
Integer countAllItems = documents.count()
哪一個更快的方法?
然後第二個應該更快?如果你說實際上'count'查詢等同於'find' +光標計數(也就是說「第二種方式」),那麼「第一個選項」相當於第二個+另一個find查詢。或者我在某個地方誤認了?最重要的是,mongo不會利用他執行的查詢嗎? – dgiugg
所以我geting realy不同ferentings,因爲當我用在java驅動程序的第一個選項,我geting大廳時間短於第二個選項。 – lukisp
@dgiugg不,你只在這兩種方法中做一個查詢 – Sammaye