private Iterable<Integer> queryDocuments(BSONObject query) throws MongoServerException { synchronized (indexes) { for (Index index : indexes) { if (index.canHandle(query)) { return matchDocuments(query, index.getPositions(query)); } } } return matchDocuments(query); }