2014-07-12 14 views
19

Sto utilizzando il programma Node.js per inserire dati in un database MongoDB. Ho inserito i dati in una raccolta denominata "repl-failover".Nome sillabato collezione MongoDB

var mongoClient = require("mongodb").MongoClient; 
mongoClient.connect("mongodb://localhost:30002/test", function(err, db) { 
    if (err) throw err; 
    db.collection("repl-failOver").insert({ "documentNumber" : document++}, function (err, doc) { 
     if (err) throw err; 
     console.log(doc); 
    }); 
    db.close(); 
}); 

Quando uso il guscio Mongo e lista giù per le collezioni del database utilizzando show collections sono in grado di vedere la collezione "repl-failover".

Come si esegue un comando di ricerca dalla shell mongo per questa raccolta?

risposta

41

Utilizzare questa sintassi:

db['repl-failOver'].find({}) 

o

db.getCollection('repl-failOver').find({}) 

È possibile trovare maggiori informazioni nella sezione Executing Queries del manuale:

Se la shell mongo non accetta la nome della raccolta, per l'istanza se il nome contiene uno spazio, trattino o inizia con un numero , è possibile utilizzare una sintassi alternativa per fare riferimento alla raccolta, come il seguente:

db["3test"].find() 

db.getCollection("3test").find() 
+0

Prima opzione non funziona con MongoDB 3.4. Il secondo è wroks! Grazie –

1

hai trovato questo errore di accedere collezioni con i caratteri specifici (-, _, ). Ho spiegato la soluzione here, ma in fondo tutto ciò che serve è fare

db.getCollection("repl-failOver").insert(...)

Problemi correlati