web-dev-qa-db-fra.com

Requête Mongodb find (): ne renvoie que des valeurs uniques (pas de doublons)

J'ai une collection de documents:

{
    "networkID": "myNetwork1",
    "pointID": "point001",
    "param": "param1"
}
{
    "networkID": "myNetwork2",
    "pointID": "point002",
    "param": "param2"
}
{
    "networkID": "myNetwork1",
    "pointID": "point003",
    "param": "param3"
}
...

les pointsID sont uniques, mais les networkID ne le sont pas.

Est-il possible d'interroger Mongodb de telle sorte que le résultat sera: [myNetwork1, myNetwork2]

à l'heure actuelle, j'ai seulement réussi à retourner [myNetwork1, myNetwork2, myNetwork1]

J'ai besoin d'une liste d'identifiants réseau uniques pour renseigner un composant select2 à complétion automatique. Comme je peux avoir jusqu'à 50 000 documents, je préférerais que mongoDb filtre les résultats au niveau de la requête.

43
Franckl

Je pense que vous pouvez utiliser db.collection.distinct(fields,query)

Vous pourrez obtenir les valeurs distinctes dans votre cas pour NetworkID.

Cela devrait être quelque chose comme ça:

Db.collection.distinct('NetworkID')
100
Laura Uzcategui