MongoCollection.find () выполняет поиск дважды? - PullRequest
2 голосов
/ 01 июля 2019

Я использую код, описанный ниже:

if (collection.find(toFind) != null) {
            dataFound = collection.find(toFind).first();
        } else {
            System.err.println("NULL");
        }

Так как здесь дважды вызывается collection.find (), будет ли он выполнять 2 поиска в базе данных или потому что он возвращает FindIterable, его простоa cusror ???

Мы ограничены в ограничении операций с базой данных и избегаем такого необходимого, сколько мы платим за единицу запроса

1 Ответ

3 голосов
/ 01 июля 2019

Почему бы не сохранить результат поиска, а затем использовать переменную store

var queryResult = collection.find(toFind)
if(queryResult != null){
 dataFound = queryResult.first()
} else { // Handle error here}

Или еще лучше, просто используйте метод findOne, чтобы получить первый результат

var queryResult = collection.findOne(toFind)
if(!queryResult){
  //Handle result here
}

И чтобы ответить на вопрос, да, он выполнит запрос дважды.

...