2011-07-12 4 views
1

J'ai une base de données de documents qui contiennent tous un champ numérique X. Je tente d'écrire une requête qui renvoie un nombre spécifié de documents dont les champs X sont les plus proches d'une valeur donnée Y.MongoDB et Java Driver: Range Query

par exemple. Liste des X documents est [1, 4, 9, 2, 5, 4, 6, 8, 9, 10, 23, 2] Y est 5, nombre spécifié de résultats à retourner est 6 reviendriez [4, 4, 5, 6, 8, 9]

Ma première pensée est d'obtenir tous les documents, trier le résultat fixé par X et coupez l'excédent entrées autour de Y. Cependant, je ne suis pas sûr de savoir comment implémenter cette fonctionnalité de «recadrage» dans Mongo.

Comment puis-je créer une requête en utilisant le pilote Java qui le fait?

Répondre

1

Il n'y a rien où MongoDB pourrait vous aider. Vous devez implémenter un tel filtrage au niveau de l'application ou utiliser Map-Reduce mais l'API de requête côté client ne vous aide pas ici (il est peu probable que vous puissiez implémenter quelque chose comme ça en utilisant SQL).

+0

Figuré cela pourrait être le cas, merci –