2012-10-14 10 views
21

Sto usando pymongo e vogliono avere valori distinti per un settore così che io posso passare anche altri parametri di ricerca. Ad esempio, ho le voci come:pymongo- Come posso avere valori distinti per un campo insieme ad altri parametri di ricerca

{ 
    id = "my_id1" 
    tags: [tag1, tag2, tag3], 
    category: "movie", 
} 
{ 
    id = "my_id2" 
    tags: [tag3, tag6, tag9], 
    category: "tv", 
} 
{ 
    id = "my_id3" 
    tags: [tag2, tag6, tag8], 
    category: "movie", 
} 

Quindi voglio avere tutti i tag precisa, sotto categoria film. Qualcuno può guidare per favore come posso ottenere questo usando pymongo. Nella shell di mongo javascript, ho pubblicato db.mycoll.distinct ('tags', {category: "movie"}) e ha funzionato bene. Ma quando faccio lo stesso in pymongo solleva l'errore. Immagino che non sia supportato in pymongo. Qualunque idea, tuttavia, su come possa essere realizzato un simile compito.

risposta

41

Devi fare il distinct chiamata on the cursor tornati da un find anziché sulla raccolta:

tags = db.mycoll.find({"category": "movie"}).distinct("tags") 
+1

Grazie amico, ho avuto guai seri con :) –

Problemi correlati