2015-04-30 24 views
6

Quando eseguo questo comando in robomongo, ho un output con righe diverse:Log per console in MongoDB

db.getCollection('houses').find({}) 

Ora ho cercato di eseguire lo stesso comando nella shell mongo:

ho scritto uno script mongo.js:

conn = new Mongo(); 
    db = conn.getDB("development"); 

    db.getCollection('houses').find({}); 

aperto la console con:

mongo --shell 
.210

e ho cercato di eseguire il comando:

> load('mongo.js') 
    true 

Non capisco motivo per cui ho solo true come uscita. Voglio vedere l'output della query! Cosa ho sbagliato? Grazie

risposta

14

Nello script di shell, invece di console.log è possibile utilizzare

print() // per testi in chiaro,

o printjson() // per JSON

utilizzo:

printjson(db.getCollection('houses').find({}));

+0

Grazie, funziona perfettamente! –

1

Quando si utilizza

printjson(db.getCollection('houses').find({})); 

Ottengo l'output dall'oggetto find.

{ 
"_mongo" : connection to ***.***.***.***, 
"_db" : *****, 
"_collection" : ***.houses, 
"_ns" : "*****.houses", 
"_query" : { 

}, 
"_fields" : null, 
"_limit" : 0, 
"_skip" : 0, 
"_batchSize" : 0, 
"_options" : 4, 
"_cursor" : null, 
"_numReturned" : 0, 
"_special" : false, 
"help" : function() { 
print("find(<predicate>, <projection>) modifiers") 
print("\t.sort({...})") 
........... 
} 

se si utilizza

db.getCollection('houses').find({}).forEach(printjson) 

ho l'output desiderato.

Problemi correlati