В коллекции документы вида {_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КК документов и засуну их в массив, то при наличии оперативной памяти всё будет хорошо работать? или вообще так делать не стоит?
Слышал, что skip в mongodb работает не очень быстро, так ли это?
Он везде работает не очень быстро, специфика tree индексов. Поэтому для пагинации лучше использовать сортировочное поле, тогда будет быстро, например {_id: {$gt: lastReceivedID}}