2015-01-20 8 views
5

Come si ottiene l'elenco degli indici su una raccolta con Meteor?
Qualcosa di simile a (o forse basato su proxy) di Mongo db.collection.getIndexes
Non c'è ancora molta API di indicizzazione in Meteora (ce ne sarà una alla fine); ma spero che qualcuno ha già risolto questo problema
AcclamazioniOttieni un elenco degli indici della collezione in Meteor

+1

È sempre possibile accedere all'oggetto del driver nativo sottostante, o anche fondamentalmente all'oggetto 'Db'. Può essere fatto. Cercalo, ma lascerò che qualcun altro sia l'eroe se non lo trovi prima tu stesso. –

+0

Puoi creare indici con la funzione _.map, ovviamente è solo se ne hai bisogno per stampare indici sul sito web. – Sindis

+0

@NeilLunn, suona come una buona strada da percorrere, alla fine lo esaminerò, forse mi ispirerò all'implementazione di '_ensureIndex'. @Sindis, non sono sicuro che siamo sulla stessa pagina (e non sto parlando di pagine del sito web :) La mia domanda riguarda i campi indicizzati nelle raccolte Mongo. L'obiettivo è chiamare un 'find' nel database che guarda solo nelle chiavi indicizzate delle collezioni. Scusate se il testo della domanda è stato confuso .. –

risposta

3

Secondo this issue, è possibile aggiungere un getIndexes al prototipo Mongo Collection come questo (credito per @jagi):

if (Meteor.isServer) { 
    var Future = Npm.require('fibers/future'); 
    Mongo.Collection.prototype.getIndexes = function() { 
    var raw = this.rawCollection(); 
    var future = new Future(); 

    raw.indexes(function(err, indexes) { 
     if (err) { 
     future.throw(err); 
     } 

     future.return(indexes); 
    }); 

    return future.wait(); 
    }; 

    Items = new Mongo.Collection(); 
    console.log(Items.getIndexes()); 
} 

è anche possibile aprire il Shell Mongo DB e accesso diretto alle collezioni db Mongo.

meteor mongo 
meteor:PRIMARY> db.tags.getIndexes() 
[ 
    { 
    "v" : 1, 
    "key" : { 
     "_id" : 1 
    }, 
    "name" : "_id_", 
    "ns" : "meteor.tags" 
    } 
] 
Problemi correlati