Могу предложить два решения.
- После записи документа проверять наличие в коллекции _prev и _next, и отсутствующие записывать в отдельную коллекцию. Тогда потом искать их не придется, они будут уже собраны в отдельной коллекции.
- В _id документа не класть внешний идентификатор, как вы делаете сейчас, а генерировать внутренний. А внешний сохранять в отдельном поле, по которому построить индекс. Так же поступать и с _prev и _next. При записи документа нужно искать его _prev и _next по внешним идетнификаторам, и если найдены, проставлять внутренние.
Для поиска отсутствующих документов нужно будет проскаинровать всю коллекцию и выбрать те внешние id из _prev и _next, для которых не заполнены внутренние _id.