Question

Je voudrais parcourir une liste de champs distincts dans un document donné.En utilisant la ligne de commande MongoDB, je peux type de obtenir ce que je veux en faisant quelque chose comme :

db.MyDoc.distinct("someField")

...sauf qu'il renvoie tous les résultats sous forme de BSON géant.

Existe-t-il un moyen de faire cela dans Morphia, et de le renvoyer en tant que Iterable, pour que tous les résultats ne soient pas lus en mémoire d'un seul coup ?

j'imagine que distinct() est implémenté comme une sorte de hashmap en mémoire, ce qui signifie probablement qu'il ne sert à rien d'essayer de parcourir les résultats de manière fragmentaire pour éviter de les avoir tous en mémoire en même temps.

Était-ce utile?

La solution

Même lorsque cela est pris en charge par morphia, le résultat de distinct est toujours un document unique (bson), avec un tableau de valeurs distinctes pour le champ de résultat.En gros, il devra être lu entièrement en mémoire.

Autres conseils

ceci n'est pas pris en charge dans Morphia actuellement.Il y a une demande de fonctionnalité http://code.google.com/p/morphia/issues/detail?id=219&colspec=ID%20Type%20Stars%20Status%20Priority%20Milestone%20Owner%20Summary Tu peux regarder.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top