Portanto, não sei muito sobre MongoDB
. Tenho RoboMongo
usando o qual me conecto a um MongoDB. O que preciso fazer é o seguinte - há uma coleção nesse MongoDB. Quero exportar os dados dessa coleção para salvá-los em um arquivo.
Usei a interface para abrir os dados da coleção como texto e fiz um Ctrl+ Ae colei em um arquivo de texto. No entanto, descobri que nem todos os dados são copiados e também que havia muitos comentários nos dados de texto que quebram naturalmente o JSON.
Gostaria de saber se o RoboMongo tem uma Export As JSON
instalação para que eu possa fazer uma exportação limpa.
Quaisquer dicas são apreciadas!
mongoexport
ferramenta de linha de comando padrão .mongoexport --uri='mongodb://[email protected]:27017/marketing' --collection=contacts --out=contacts.json
Respostas:
Você pode usar
tojson
para converter cada registro em JSON em um script de shell do MongoDB .Execute este script no RoboMongo:
Isso imprime todos os resultados como uma matriz do tipo JSON.
O resultado não é realmente JSON! Alguns tipos, como datas e IDs de objeto, são impressos como chamadas de função JavaScript, por exemplo
ISODate("2016-03-03T12:15:49.996Z")
,.Pode não ser muito eficiente para grandes conjuntos de resultados, mas você pode limitar a consulta. Alternativamente, você pode usar
mongoexport
.fonte
tojson(db.getCollection(...).find(...)["_batch"])
para produzir a totalidade do lote atual obtido do servidor.["_batch"]
? Você pode dar um exemplo de como usar isso? Tentei fazer isso com o Robo 3T 1.2.1, mas só diz "Script executado com sucesso, mas não há resultados para mostrar".tojson(db.getCollection(...).find(...).toArray())
.Uma maneira rápida e suja: Basta escrever sua consulta como
db.getCollection('collection').find({}).toArray()
e clicar com o botão direitoCopy JSON
. Cole os dados no editor de sua escolha.fonte
A funcionalidade do shell do Robomongo resolverá o problema. No meu caso, eu precisava de algumas colunas no formato CSV.
fonte
Existem algumas GUIs do MongoDB por aí, algumas delas com suporte integrado para exportação de dados. Você encontrará uma lista abrangente de GUIs do MongoDB em http://mongodb-tools.com
Você perguntou sobre a exportação dos resultados da sua consulta, e não sobre a exportação de coleções inteiras. Experimente o 3T MongoChef MongoDB GUI , esta ferramenta tem suporte para seu caso de uso específico.
fonte
você diz "exportar para arquivo" como em uma planilha? gosta de um .csv?
IMO, esta é a maneira MAIS FÁCIL de fazer isso no Robo 3T (antigo robomongo):
No canto superior direito da GUI do Robo 3T há um botão "Exibir resultados em modo de texto", clique nele e copie tudo
cole tudo neste site: https://json-csv.com/
clique no botão de download e agora você tem em uma planilha.
espero que isso ajude alguém, pois eu gostaria que o Robo 3T tivesse recursos de exportação
fonte
Não execute este comando no shell, insira este script em um prompt de comando com seu nome de banco de dados, nome de coleção e nome de arquivo, todos substituindo os marcadores de posição.
Funciona para mim.
fonte
Não acho que o robomongo tenha esse recurso. Portanto, é melhor usar a função mongodb como mongoexport para uma coleção específica.
Mas se você está procurando uma solução de backup é melhor usar
fonte
Ampliando a resposta de Anish, eu queria algo que pudesse aplicar a qualquer consulta para gerar automaticamente todos os campos em vez de defini-los na instrução de impressão. Provavelmente pode ser simplificado, mas foi algo rápido e sujo que funciona muito bem:
fonte
Se quiser usar o mongoimport , você desejará exportar desta forma:
fonte
Usando um script de shell robomongo:
Usando o comando de exportação e importação do mongodb
Você pode adicionar o
--jsonArray
parâmetro / sinalizador ao seumongoexport
comando, isso exporta o resultado como um único array json.Em seguida, basta especificar o
--jsonArray
sinalizador novamente ao importar.Ou remova os colchetes iniciais e finais do array [] no arquivo, então seu arquivo modificado e exportado será importado com o
mongoimport
comando sem a--jsonArray
bandeira.Mais sobre Exportar aqui: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Importe aqui: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
fonte
Eu tive esse mesmo problema, e a execução do script no robomongo (Robo 3T 1.1.1) também não permite copiar valores e também não havia opção de exportação. A melhor maneira de conseguir isso é usar o mongoexport, se o mongodb estiver instalado em seu local, você pode usar o mongoexport para se conectar ao banco de dados em qualquer servidor e extrair dados
Para se conectar a dados no servidor remoto e arquivo de saída csv, execute o seguinte mongoexport em sua linha de comando
fieldFile: ajuda a extrair as colunas desejadas, ex: o conteúdo do fields.txt pode ser apenas:
para extrair apenas valores da coluna 'userId'
Dados no servidor remoto, arquivo de saída json:
isto extrai todos os campos para o arquivo json
dados no localhost (mongodb deve estar em execução no localhost)
Referência: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
fonte
Solução:
Onde:
banco de dados ->
nome da coleção do servidor mock ->
nome do arquivo de saída api_defs -> childChoreRequest.json
fonte
Uma extensão da resposta Florian Winter para pessoas que procuram gerar uma consulta pronta para executar.
drop
einsertMany
consulta usandocursor
:Sua saída será como:
fonte
fonte