Почему бы не сохранить результат поиска, а затем использовать переменную 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
}
И чтобы ответить на вопрос, да, он выполнит запрос дважды.