Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Поиск данных в MongoDB Find, курсор кратко

Лекция



Привет, Вы узнаете о том , что такое поиск данных в mongodb, Разберем основные их виды и особенности использования. Еще будет много подробных примеров и описаний. Для того чтобы лучше понимать что такое поиск данных в mongodb , настоятельно рекомендую прочитать все из категории MongoDB.

В главе 1 мы вкратце рассмотрели команду find. Однако, find - это не только селекторы. Как уже упоминалось, результатом find является курсор. Пришло время рассмотреть это детальнее.

Выбор полей

Прежде чем переходить к курсорам, следует знать, что find принимает второй необязательный параметр. Это - список полей, которые мы хотим получить. Например, мы можем получить все имена единорогов следующим запросом:

db.unicorns.find(null, {name: 1}); 

Поле _id по умолчанию возвращается всегда. Мы можем явным способом исключить его, указав {name:1, _id: 0}.

За исключением поля _id, нельзя смешивать включения и исключения полей. Задумавшись, можно понять, зачем так сделано. Можно или хотеть включить или хотеть наоборот - исключить определенные поля явным образом.

Сортировка

Я уже несколько раз упомянул, что find возвращает курсор, который исполняется отложенно - по мере необходимости. Однако, вы уже без сомнения могли видеть, что find исполняется мгновенно. Такое поведение характерно только для консоли. Можно пронаблюдать за истинным поведением курсоров, взглянув на любой из методов, который мы можем присоединить к find. Об этом говорит сайт https://intellect.icu . Первым из них будет sort. Синтаксис sort примерно такой же, как у выбора полей, который мы видели в предыдущем разделе. Мы указываем поля, по которым надо сортировать, используя 1 для сортировки по возрастанию и -1 для сортировки по убыванию. Например:

//сортируем по весу - от тяжелых к легким единорогам 
db.unicorns.find().sort({weight: -1}) 

//по имени единорога, затем по числу убитых вампиров: 
db.unicorns.find().sort({name: 1, vampires: -1}) 

Подобно реляционной базе данных, MongoDB может использовать индексы для сортировки. Детальнее мы рассмотрим индексы несколько позже. Однако следует знать, что без индекса MongoDB ограничивает размер сортируемых данных. Если вы попытаетесь отсортировать большой объем данных, не используя индекс, вы получите ошибку. Некоторые считают это ограничением. Хотя я думаю, что и другим базам данных не мешало бы запрещать выполнение неоптимальных запросов. (Я не стану превращать каждый недостаток MongoDB в ее достоинство, однако я сталкивался с большим числом неоптимальных баз данных, которым очень не хватало подобного режима строгой проверки.)

Разбиение на страницы

Разбиение на страницы может быть осуществлено с помощью методов limit и skip. Чтобы получить второго и третьего по весу единорога, можно выполнить:

db.unicorns.find().sort({weight: -1}).limit(2).skip(1) 

Используя limit вместе с sort можно избежать проблем с сортировкой по неиндексированным полям.

Count

Консоль позволяет выполнить count прямо над коллекцией:

db.unicorns.count({vampires: {$gt: 50}}) 

На практике же count - это метод курсора, консоль просто обеспечивает удобное сокращение. С драйверами, не поддерживающим подобного сокращения, нужно писать что-то вроде этого (конечно, и в консоли тоже так можно):

db.unicorns.find({vampires: {$gt: 50}}).count()

In This Chapter

Довольно просто пользоваться find и курсорами. Есть еще несколько дополнительных команд, которые мы либо рассмотрим позже, либо не рассмотрим вообще (так как они применяются лишь в граничных случаях), но теперь, я думаю, вы доолжны уже освоиться в работе с консолью mongo и пониманием основных принципов MongoDB.

Вау!! 😲 Ты еще не читал? Это зря!

Исследование, описанное в статье про поиск данных в mongodb, подчеркивает ее значимость в современном мире. Надеюсь, что теперь ты понял что такое поиск данных в mongodb и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории MongoDB

Из статьи мы узнали кратко, но содержательно про поиск данных в mongodb
создано: 2020-12-18
обновлено: 2021-11-22
12



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Базы данных MongoDB

Термины: Базы данных MongoDB