Le shell ished
ished est le terminal d'IshedDB, comme mongosh pour MongoDB, avec ses outils pour exporter, importer, sauvegarder et restaurer, comme mongoexport, mongoimport, mongodump et mongorestore. Un seul fichier, sans installation : il demande Node.js 22 ou plus récent.
L'obtenir
Dans la console, Vue d'ensemble › « Obtenir l'adresse de connexion » › langage « Shell ished » : le lien de téléchargement de ished.mjs et la commande prête, avec l'adresse de votre IshedDB. Autorisez d'abord l'adresse IP de votre ordinateur (le bandeau « Autoriser mon adresse IP » le fait en un clic).
node ished.mjs https://votre-ished.exampleVotre clé vous est demandée, sans être affichée. Elle n'est jamais une option de la commande : elle resterait dans l'historique de votre terminal. Pour un script, mettez-la dans la variable ISHED_KEY, ou dans un fichier lisible par vous seul : --keyFile cle.txt (le shell refuse un fichier lisible par d'autres).
Le terminal
ished test> show dbs
Clinique 120.00 Kio
ished test> use Clinique
Base courante : Clinique
ished Clinique> db.patients.find({ ville: 'Dakar' }, { _id: 0, nom: 1 }).sort({ nom: 1 })
[ { nom: 'Awa Diop' }, { nom: 'Fatou Ndiaye' } ]
ished Clinique> db.patients.countDocuments()
3| Commande | Ce qu'elle fait |
|---|---|
show dbs | les bases du cluster et leur taille |
show collections | les collections et les vues de la base courante |
use <base> | change de base courante |
db | le nom de la base courante |
it | la suite du dernier résultat (20 documents à la fois) |
help | l'aide ; exit pour quitter, cls pour effacer |
Chaque ligne est du JavaScript, et peut attendre (await) ; ce qui est déclaré reste. Sur db.<collection> : find, findOne, insertOne, insertMany, updateOne, updateMany, replaceOne, deleteOne, deleteMany, bulkWrite, countDocuments, distinct, aggregate, createIndex, getIndexes, dropIndex, drop. Sur db : getCollectionNames(), createCollection, createView, dropDatabase, runCommand, getSiblingDB. Et ISODate(), ObjectId(), UUID(), NumberLong(), EJSON, print, printjson, sleep, load('script.js').
L'historique est gardé dans votre dossier personnel (.ished/historique_shell, lisible par vous seul), sans les lignes qui peuvent tenir un secret (clé, mot de passe, jeton).
Un script
export ISHED_URL=https://votre-ished.example
node ished.mjs --eval "db.patients.countDocuments({ ville: 'Dakar' })" -d Clinique
node ished.mjs rapport.js -d CliniqueExporter et importer
node ished.mjs export -d Clinique -c patients -o patients.json
node ished.mjs export -d Clinique -c patients --type csv -f nom,ville,adresse.quartier -o patients.csv
node ished.mjs import -d Copie -c patients --file patients.json
node ished.mjs import -d Clinique -c patients --type csv --headerline --file patients.csv --mode upsert --upsertFields nom- export : JSON (un document par ligne, en Extended JSON ;
--jsonArraypour une liste,--pretty,--jsonFormat canonical), ou CSV avec--fields.--query,--sort,--skip,--limit. Les champs cachés ne sortent que nommés dans--reveal. - import : JSON, y compris un export de MongoDB (
$oid,$date,$numberLong,$numberDecimal,$binary…), CSV et TSV (--headerlineou--fields, les nombres reconnus, ou des colonnes typées avec--columnsHaveTypes:nom.string(),âge.int32(),né.date(2006-01-02)…).--mode insert(par défaut),upsert,mergeoudelete,--droppour vider la collection d'abord,--stopOnErrorpour s'arrêter au premier refus.
Sauvegarder et restaurer
node ished.mjs dump -o sauvegarde
node ished.mjs dump -d Clinique --gzip -o sauvegarde-clinique
node ished.mjs restore sauvegarde --dropdump écrit un dossier par base : les documents de chaque collection et sa définition (index, validateur, champs cachés, horodatage, expiration), et les vues. Les fichiers tiennent vos données, champs cachés compris : ils ne sont lisibles que par vous. restore remet les définitions, les documents avec leurs identifiants, puis les vues ; il demande une clé d'administration. Sans --drop, les documents déjà présents sont gardés et comptés.
Une sauvegarde chiffrée de chaque cluster est déjà faite chaque nuit par IshedDB, et le palier Dédié revient à n'importe quel instant des derniers jours (page Sauvegarde de la console) : dump sert à garder une copie chez vous ou à déplacer des données.
node ished.mjs --help, node ished.mjs export --help (et import, dump, restore) donnent toutes les options.