Questo comportamento in realtà ha perfettamente senso non solo dal punto di vista delle prestazioni. Pensaci in questo modo:
Quando usi observe
metodo, vuoi essere avvisato di tutte le modifiche che si verificano al collezione (sia sul server che in minimi. Quindi ciascuno dei callback che ricevi è una singola istanza di modifica del collezione. Quando si cambia l'ordine degli oggetti spostando uno di loro in un altro posto, si cambia la raccolta una volta, Quindi vuoi ricevere solo un callback per questo evento.
Non vuoi essere avvisato 42 volte su un singolo evento!
Penso che il modo più semplice per moltiplicare quella notifica per tutti gli oggetti spostati sia quello di lanciarli manualmente all'interno del callback. Quando un oggetto si sposta dalla posizione A alla posizione B, sai che anche tutti gli oggetti tra A e B sono stati spostati. Quindi, se hai bisogno di regolare ciascuno di essi, fai semplicemente questo in loop che va da A a B durante l'intero elenco.