Qual è il modo migliore per tenere traccia dei tag univoci per una raccolta di documenti di milioni di elementi di grandi dimensioni? Il modo normale di fare tagging sembra essere l'indicizzazione dei tasti multipla. Spesso ho bisogno di ottenere tutte le chiavi uniche, però. Non ho nemmeno accesso al nuovo comando "distinto" di mongodb, dal momento che il mio autista, erlmongo, non sembra ancora implementarlo.MongoDB: Qual è un buon modo per ottenere un elenco di tutti i tag univoci?
risposta
Anche se il driver non implementa distinti, è possibile implementarlo da soli. In JavaScript (mi dispiace, non so Erlang, ma dovrebbe tradurre abbastanza direttamente) si può dire:
result = db.$cmd.findOne({"distinct" : "collection_name", "key" : "tags"})
Quindi, vale a dire: si fa un findOne sulle "$ cmd" collezione di qualunque database' usando. Passa il nome della raccolta e la chiave su cui desideri eseguire la distinzione.
Se è necessario un comando per il quale il proprio autista non fornisce un supporto, è possibile consultare http://www.mongodb.org/display/DOCS/List+of+Database+Commands per un elenco un po 'completo di comandi del database.
So che questa è una domanda vecchia, ma ho riscontrato lo stesso problema e non ho trovato una soluzione reale in PHP.
Così sono arrivato fino a questo:
http://snipplr.com/view/59334/list-of-keys-used-in-mongodb-collection/
Benvenuto in Stack Overflow! Mentre questo può teoricamente rispondere alla domanda, [sarebbe preferibile] (http://meta.stackexchange.com/q/8259) includere qui le parti essenziali della risposta e fornire il link per riferimento. – oers
John, può risultare utile utilizzare Varietà, uno strumento open source per l'analisi dello schema di una collezione: https://github.com/jamescropcho/variety
Forse si potrebbe correre Varietà ogni N ore in background e interrogare il nuovo database varietàResults per recuperare un elenco di chiavi univoche che iniziano con una determinata stringa (cioè sono discendenti di un genitore specifico).
Fatemi sapere se avete domande o se avete bisogno di ulteriori consigli.
Buona fortuna!
- 1. Ottenere un elenco di tutti i tag tra due commit
- 2. Yii2 - Qual è il modo migliore per ottenere tutti i valori degli attributi del modello univoci?
- 3. cosa è un buon modo per generare un elenco infinito di tutti gli interi in Haskell
- 4. Qual è un buon modo per creare un progetto Backbone.js?
- 5. qual è un buon modo per combinare attraverso un set?
- 6. Qual è un buon modo per dividere le stringhe qui?
- 7. Qual è un buon modo per distribuire un'applicazione Perl?
- 8. Qual è un buon modo per fornire ulteriori decorazioni/metadati per i parametri della funzione Python?
- 9. Qual è un buon modo per gestire i commit clean in git per un progetto legacy?
- 10. Qual è un buon modo per documentare sub/pub?
- 11. Qual è un buon modo per testare un file per vedere se è un file zip?
- 12. Qual è un buon modo per ottenere il nome file da un URL in Ruby?
- 13. È un buon modo per usare java.util.concurrent.FutureTask?
- 14. Qual è un buon modo per gestire i tipi di parametri url?
- 15. Filter_var è un buon modo per andare?
- 16. Qual è il modo migliore per ottenere il nome del tag di un elemento in JS?
- 17. Qual è un buon modo per aggiungere un gran numero di piccoli oggetti galleggianti?
- 18. Elenchi univoci da un elenco
- 19. Qual è un buon modo per testare i metodi onMeasure/onLayout/onDraw di una vista personalizzata?
- 20. Come ottenere un elenco di tutti i servlet disponibili?
- 21. Come ottenere un elenco di tutti i comandi shell disponibili
- 22. Qual è un buon modo per utilizzare un cmdlet PowerShell in un sistema di build NAnt?
- 23. Qual è un buon modo per combinare l'impaginazione e il raggruppamento senza query in Slick 3.0?
- 24. Ottenere un elenco di tutti i classloader in una JVM
- 25. C'è un modo per ottenere tutti i dati mysql di tutti i paesi, stati e città? (un file di scarico)
- 26. Qual è un buon modo per gestire un numero di versione in un'applicazione Java?
- 27. Qual è un buon metodo per * temporaneamente * ordinare un vettore?
- 28. ABRecordID è un modo affidabile per identificare contatti univoci?
- 29. Qual è un buon modo per indicare che IEnumerable è "lento" o "veloce"?
- 30. Qual è un buon approccio per studiare opengl es 2.0?
Awwwwww, si. :) –