sql >> Databasteknik >  >> NoSQL >> MongoDB

Finns det något sätt att "snyggt" skriva ut MongoDB-skalutdata till en fil?

Skalet ger några trevliga men dolda funktioner eftersom det är en interaktiv miljö.

När du kör kommandon från en javascript-fil via mongo commands.js får du inte helt identiskt beteende.

Det finns två sätt att komma runt detta.

(1) fejka ut skalet och få det att tro att du är i interaktivt läge

$ mongo dbname << EOF > output.json
db.collection.find().pretty()
EOF

eller
(2) använd Javascript för att översätta resultatet av en find() till en utskrivbar JSON

mongo dbname command.js > output.json

där command.js innehåller detta (eller motsvarande):

printjson( db.collection.find().toArray() )

Detta kommer att skriva ut mängden resultat, inklusive [ ] - om du inte vill det kan du iterera över arrayen och printjson() varje element.

Förresten, om du bara kör en enda Javascript-sats behöver du inte lägga den i en fil utan istället kan du använda:

$ mongo --quiet dbname --eval 'printjson(db.collection.find().toArray())' > output.json


  1. Hur frågar du efter är inte null i Mongo?

  2. Hur man gör GROUP BY i Redis

  3. mongoose skillnaden mellan findOneAndUpdate och uppdatering

  4. Mongoose-fråga där värdet inte är null