@source2003

Как выполнить поиск по коллекции?

В коллекции документы вида {_id: id, "custom-field": true} или просто {_id: id}
Правильно ли я выбираю все значения, где custom-field = true, или его вообще нет.

db.collection.find({"custom-field": {$in: [true]}}) - Когда нужно выбрать документы, где есть custom-field = true
db.collection.find({"custom-field": {$nin: [true]}}) - Все остальные документы, где custom-field нет или он равен false

Еще один вопрос: Слышал, что skip в mongodb работает не очень быстро, так ли это? Мне нужно будет перебирать коллекцию с 20 миллионами документов, думаю выбирать их по 1000 и скипать или это плохая идея? Или если я выберу сразу 20КК документов и засуну их в массив, то при наличии оперативной памяти всё будет хорошо работать? или вообще так делать не стоит?
  • Вопрос задан
  • 181 просмотр
Пригласить эксперта
Ответы на вопрос 1
@lega
db.collection.find({"custom-field": {$in: [true]}})

db.collection.find({"custom-field": true})
db.collection.find({"custom-field": {$ne: true}})

Слышал, что skip в mongodb работает не очень быстро, так ли это?

Он везде работает не очень быстро, специфика tree индексов. Поэтому для пагинации лучше использовать сортировочное поле, тогда будет быстро, например {_id: {$gt: lastReceivedID}}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы