Donc je ne sais pas grand-chose MongoDB
. J'ai à l' RoboMongo
aide duquel je me connecte à un MongoDB. Ce que je dois faire, c'est ceci - il y a une collection dans ce MongoDB. Je souhaite exporter les données de cette collection afin de pouvoir les enregistrer dans un fichier.
J'ai utilisé l'interface pour ouvrir les données de la collection sous forme de texte et j'ai fait un Ctrl+ Aet collé dans un fichier texte. Cependant, j'ai trouvé que toutes les données ne sont pas copiées et qu'il y avait de nombreux commentaires dans les données texte qui cassent naturellement le JSON.
Je me demande si RoboMongo a une Export As JSON
installation pour que je puisse faire une exportation propre.
Tous les pointeurs sont appréciés!
mongoexport
outil de ligne de commande standard .mongoexport --uri='mongodb://[email protected]:27017/marketing' --collection=contacts --out=contacts.json
Réponses:
Vous pouvez utiliser
tojson
pour convertir chaque enregistrement en JSON dans un script shell MongoDB .Exécutez ce script dans RoboMongo:
Cela imprime tous les résultats sous forme de tableau de type JSON.
Le résultat n'est pas vraiment JSON! Certains types, tels que les dates et les ID d'objet, sont imprimés sous forme d'appels de fonction JavaScript, par exemple,
ISODate("2016-03-03T12:15:49.996Z")
.Ce n'est peut-être pas très efficace pour les grands ensembles de résultats, mais vous pouvez limiter la requête. Vous pouvez également utiliser
mongoexport
.la source
tojson(db.getCollection(...).find(...)["_batch"])
pour sortir l'intégralité du lot actuel obtenu à partir du serveur.["_batch"]
? Pouvez-vous donner un exemple comment l'utiliser? J'ai essayé ceci avec Robo 3T 1.2.1, mais il dit seulement "Script exécuté avec succès, mais il n'y a aucun résultat à afficher".tojson(db.getCollection(...).find(...).toArray())
.Une manière rapide et sale: écrivez simplement votre requête au fur
db.getCollection('collection').find({}).toArray()
et à mesure et faites un clic droitCopy JSON
. Collez les données dans l'éditeur de votre choix.la source
La fonctionnalité shell de Robomongo résoudra le problème. Dans mon cas, j'avais besoin de quelques colonnes au format CSV.
la source
Il existe quelques interfaces graphiques MongoDB, dont certaines ont un support intégré pour l'exportation de données. Vous trouverez une liste complète des interfaces graphiques MongoDB sur http://mongodb-tools.com
Vous avez posé une question sur l'exportation des résultats de votre requête et non sur l'exportation de collections entières. Essayez 3T MongoChef MongoDB GUI , cet outil prend en charge votre cas d'utilisation spécifique.
la source
vous dites "exporter vers un fichier" comme dans une feuille de calcul? comme à un .csv?
IMO, c'est le moyen le plus simple de le faire dans Robo 3T (anciennement robomongo):
En haut à droite de l'interface graphique du Robo 3T, il y a un bouton "Afficher les résultats en mode texte", cliquez dessus et copiez tout
collez tout sur ce site Web: https://json-csv.com/
cliquez sur le bouton de téléchargement et maintenant vous l'avez dans une feuille de calcul.
J'espère que cela aide quelqu'un, car je souhaite que Robo 3T ait des capacités d'exportation
la source
N'exécutez pas cette commande sur le shell, entrez ce script à l'invite de commande avec le nom de votre base de données, le nom de la collection et le nom de fichier, tous remplaçant les espaces réservés.
Ça marche pour moi.
la source
Je ne pense pas que le robomongo ait une telle fonctionnalité. Vous feriez donc mieux d'utiliser la fonction mongodb comme mongoexport pour une collection spécifique.
Mais si vous recherchez une solution de sauvegarde, il est préférable d'utiliser
la source
En développant la réponse d'Anish, je voulais quelque chose que je puisse appliquer à n'importe quelle requête pour afficher automatiquement tous les champs au lieu de devoir les définir dans l'instruction d'impression. Cela peut probablement être simplifié, mais c'était quelque chose de rapide et de sale qui fonctionne très bien:
la source
Si vous souhaitez utiliser mongoimport , vous souhaiterez exporter de cette façon:
la source
Utilisation d'un script shell robomongo:
Utilisation de la commande d'exportation et d'importation de mongodb
Vous pouvez ajouter le
--jsonArray
paramètre / indicateur à votremongoexport
commande, cela exporte le résultat sous forme de tableau json unique.Ensuite, spécifiez simplement le
--jsonArray
nouveau indicateur lors de l'importation.Ou supprimez les crochets de tableau de début et de fin [] dans le fichier, puis votre fichier modifié et exporté sera importé avec la
mongoimport
commande sans le--jsonArray
drapeau.Plus d'informations sur l'exportation ici: https://docs.mongodb.org/manual/reference/program/mongoexport/#cmdoption--jsonArray
Importez ici: https://docs.mongodb.org/manual/reference/program/mongoimport/#cmdoption--jsonArray
la source
J'ai eu ce même problème, et l'exécution de script dans robomongo (Robo 3T 1.1.1) ne permet pas non plus de copier des valeurs et il n'y avait pas non plus d'option d'exportation. La meilleure façon d'y parvenir est d'utiliser mongoexport, si mongodb est installé sur votre site local, vous pouvez utiliser mongoexport pour vous connecter à la base de données sur n'importe quel serveur et extraire des données
Pour vous connecter aux données sur un serveur distant et au fichier de sortie csv, exécutez le mongoexport suivant dans votre ligne de commande
fieldFile: permet d'extraire les colonnes souhaitées, ex: le contenu de fields.txt peut être simplement:
pour extraire uniquement les valeurs de la colonne 'userId'
Données sur le serveur distant, fichier de sortie json:
ceci extrait tous les champs dans le fichier json
données sur localhost (mongodb doit être exécuté sur localhost)
Référence: https://docs.mongodb.com/manual/reference/program/mongoexport/#use
la source
Solution:
Où:
base de données ->
nom de la collection du serveur fictif
-> nom du fichier de sortie api_defs -> childChoreRequest.json
la source
Une extension de la réponse Florian Winter pour les personnes qui cherchent à générer une requête prête à exécuter.
drop
etinsertMany
interrogez en utilisantcursor
:Sa sortie sera comme:
la source
la source