Używam MongoDB 2.2.2 dla 32-bitowego komputera z Windows7. Mam złożone kwerendy agregacji w pliku .js. Muszę wykonać ten plik na powłoce i skierować wyjście do pliku CSV. Zapewniam, że zapytanie zwraca "płaski" json (bez zagnieżdżonych klawiszy), więc jest on nieodłącznie wymienialny na czysty CSV.
Wiem o load()
i eval()
. eval()
wymaga, aby wkleić całe zapytanie do powłoki i pozwala tylko printjson()
w skrypcie, podczas gdy potrzebuję CSV. I drugi sposób: load()
.. To drukuje dane wyjściowe na ekranie i ponownie w formacie json.
Czy istnieje sposób, w jaki Mongo może wykonać tę konwersję z json do csv? (Potrzebuję pliku csv do przygotowania wykresów na danych). Myślę:
1. Albo mongo ma wbudowane polecenie dla tego, którego teraz nie mogę znaleźć.
2. Mongo nie może tego zrobić dla mnie; Mogę co najwyżej wysłać dane wyjściowe json do pliku, który sam muszę przekonwertować na CSV.
3. Mongo może wysyłać dane wyjściowe json do kolekcji tymczasowej, której zawartość może być z łatwością mongoexported
do formatu csv. Ale myślę, że tylko raporty map-reduce obsługują kolekcje wyjściowe. Czy to prawda? Potrzebuję go do zapytania o agregację.Przekierowanie wyjścia mongo do pliku csv
dzięki za pomoc :)
Jeśli jest coś, czego nie często, warto rozważyć napisanie osobnego EXE przy użyciu .NET , python lub możesz użyć NodeJs; każdy ma natywny sterownik, który ułatwiłby wykonanie twojego kodu i wytworzy pożądaną moc wyjściową. – WiredPrairie
Mam na myśli odpowiedź Zachary'ego na http://stackoverflow.com/questions/4130849/convert-json-format-to-csv-format-for-ms-excel i jestem w stanie konwertować z json na csv. Ale czy jako alternatywa mogę przekazać json do kolekcji, a następnie wykonać mongoexport? –
Polecam tylko zbudować małą wiązkę przewodów za pomocą Węzła i sterownika MongoDB dla NodeJS, a następnie można wykonać dowolny kod, który chcesz. Szybko uzyskasz pożądane rezultaty, bez potrzeby posiadania powłoki. Byłoby to bardzo łatwe do utrzymania (i debuggable). – WiredPrairie