Mongo依靠光标收集或计数 - 速度更快

时间:2014-07-10 12:12:57

标签: java mongodb nosql

我有问题哪种计数方法更快: 我有一些名为filterParameters的过滤器参数。 现在我在做:

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()

哪一种方法更快?

1 个答案:

答案 0 :(得分:2)

两者都没有,您使用的特定计数是游标计数的符号链接,它们是相同的功能。