2016-03-30 6 views
0

j'ai une collection avec le document suivant comme exemple:mangouste/requête MongoDB par un champ distinct par un autre

{ 
    _id: ObjectId("56fbf2210309775d6790c1c0"), 
    city_id: 2600, 
    street_name: "hamilton", 
    branch: 6 
} 

Est-il possible d'interroger la collection par branche, mais utiliser une distincte sur le STREET_NAME?

Merci!

+0

ce que vous entendez par _ "distincte du STREET_NAME" _ ? – Joum

+0

Je peux avoir plusieurs documents avec le même 'street_name' si je demande par' branch' comme ceci par exemple: 'find ({branch: 1})'. Je veux pouvoir obtenir tous les documents qui ont 'branch: 1' mais supprimer les doublons de' street_name' s'il y en a. – TBE

Répondre

1

Si vous voulez dire distinct uniquement dans les valeurs uniques.

Vous pouvez utiliser

db.yourCollectionName.distinct("street_name") 

Elle retourne un tableau. Dans votre cas, vous pouvez utiliser ce tableau comme entrée et ensuite filtrer par branche.

documentation mongodb here

Edit 1:

Ou, vous pouvez passer un second paramètre à distinct,

//db.collection.distinct(field, query) <-- check out docs. 
db.yourCollectionName.distinct("street_name", { branch: 1 }) 
+0

est-il possible de faire en 1 requête? – TBE

+0

Oui, vous pouvez également ajouter un deuxième paramètre à votre requête distincte. – jmugz3

+0

Quand je l'ai fait, il retourne juste le 'street_name' et pas tout le document – TBE