permet de dire que j'ai une collection de liste de contrôle où chaque article est son propre document car il contient beaucoup d'autres données. p>
Je veux que l'utilisateur puisse faire glisser et déposer pour réorganiser cette liste une sauvegarde de cette façon. Ma pensée initiale était d'avoir un champ modifié pour refléter cet ordre, mais le déplacement d'un objet nécessite de modifier la valeur de chaque document après le nouvel emplacement. p>
Y a-t-il un moyen d'y parvenir sans un nombre massif d'écritures? p>
3 Réponses :
Si j'ai bien compris votre question correctement, ce que vous pouvez faire, c'est que vous pouvez avoir un document distinct contenant l'index de tout le document de liste de contrôle. Toutes les documents de liste de contrôle peuvent conserver leurs informations respectives car elles sont censées être. Par exemple, et index contient une structure comme ci-dessous une fois la traînée effectuée: P> Index -> field value
Checklist1 3
Checklist2 2
Checklist3 1
Je le fais habituellement en utilisant une valeur de point flottante pour la commande. P>
Dites que vous avez une liste avec ces 3 documents: p>
Supposons maintenant que nous voulons déplacer le document Cela fonctionne pour un nombre raisonnable de swaps, qui est le scénario que je traite habituellement. P>
Si vous traitez avec un grand nombre / potentiellement infini d'itérations, vous voudrez examiner la précision de l'opération de point flottante. Dans ce cas, votre alternative pourrait être d'utiliser un type de valeur personnalisée, c'est-à-dire codé sur la valeur dans un champ de chaîne, puis utilisez une bibliothèque personnalisée pour effectuer la division à une précision numérique supérieure. P> A code> entre
B code> et
C code>. Vous feriez cela en changeant sa commande à
2.0 + (3.0 - 2.0) / 2 code> =
2.5 code>. P>.
Si l'ordre des documents change fréquemment, vous pouvez éviter d'écrire le contenu de chaque document en utilisant un document complet pour conserver la commande, à l'aide d'un tableau de chaînes contenant les ID du document. En fait, vous pouvez détenir de nombreuses commandes différentes en fonction de la manière dont vous souhaitez afficher les documents.
Dites que vous avez une collection de documents: P>
collection-meta - order - byAlpha: ["docA", "docB", "docC"] - byScore: ["docC", "docA", "docB"]