2012-05-19 13 views
5

Sto utilizzando il driver nativo mongodb per il nodo. Chiamo ensureIndex({ keywords: 1}) dopo aver recuperato la collezione. Quando eseguo il check-in nella console di mongo, non viene visualizzato nulla quando chiamo db.mycol.getIndexes().mongo native ensureIndex non crea indice

Cosa sto sbagliando?

+5

È possibile aggiungere il testo come risposta di seguito. Questo è il modo overflow dello stack, rispondi alle tue domande come faranno gli altri. Dopo due giorni (se non arriva una risposta migliore) puoi anche accettare la tua risposta come corretta. È meglio quando gli altri vedono che la tua domanda è stata risolta. – Aufziehvogel

risposta

2

la documentazione API ha aiutato un po ': http://mongodb.github.com/node-mongodb-native/api-generated/db.html#ensureindex

si suppone di chiamare ensureIndex sull'oggetto database, non la raccolta. Questo contraddice la console JavaScript.

+0

Non sono sicuro se questo è cambiato ma 'collection.ensureIndex' sembra funzionare localmente. L'esempio di codice [here] (http://mongodb.github.com/node-mongodb-native/api-generated/collection.html#ensureindex) utilizza 'collection.ensureIndex'. – Gloopy

+0

Per qualche motivo, 'collection.ensureIndex (...)' non crea l'indice né esegue il callback per me, ma 'db.ensureIndex (collection, ...)' fa. Usando MongoDB 2.4.10, node-mongodb-nativo 1.4.2. –

0

Ho riscontrato un problema simile e il problema era che non stavo aprendo il database prima di chiamare ensureIndex. Quello che stavo facendo era (sceneggiatura caffè)

db.collection('resources').ensureIndex {"$**": "text"}, {name: "email_index_text"},(err, indexName) -> 
     console.log indexName 
     console.log err 
     db.close() 

e che cosa ha funzionato è stato

db.open (err,database) -> 
    db.collection('resources').ensureIndex {"$**": "text"}, {name: "email_index_text"},(err, indexName) -> 
     console.log indexName 
     console.log err 
     db.close() 

Il primo frammento non ha fatto niente per niente. Nessun indice è stato creato e nessun errore generato.

Problemi correlati