MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Créer un script pour créer des collections MongoDB à partir du shell Mongo ?

Créez un fichier appelé "my_scripts.js", avec les commandes suivantes. Ce JavaScript définit les données et les commandes pour créer deux collections (dogs et cats ), leurs données (documents au format JSON) et les index (les index sont créés sur le name champ de la collection).

my_scripts.js :

let dogDocs = [
  {
    name: "pooch",
    breed: "poodle",
    weight: "6 lbs"
  },
  {
    name: "mutt",
    breed: "bulldog",
    weight: "10 lbs"
  }
];

let catDocs = [
  {
    name: "minni", 
    breed: "persian",
    color: "white"
  },
  {
    name: "tinkle",
    breed: "bombay",
    color: "black"
  }
];

let dogIndex = { name : 1 };
let catIndex = { name : 1 };

let collInfoObjs = [ 
  { coll: "dogs", data: dogDocs, index: dogIndex }, 
  { coll: "cats", data: catDocs, index: catIndex } 
];

for (obj of collInfoObjs) {
    db[obj.coll].insertMany(obj.data);
    db[obj.coll].createIndex(obj.index);
}


Exécutez le fichier de script :

Du mongo shell exécutez le script en tant que (vous pouvez spécifier le chemin du fichier avec le load commande):

mongo > load("my_script.js");

Une fois le script exécuté, vous pouvez utiliser les commandes suivantes individuellement pour vérifier les collections, leurs documents et les index :

db.dogs.find();
db.cats.find();
db.dogs.getIndexes();
db.cats.getIndexes();

Notez que les documents auront un _id unique champ (de type ObjectId ) créé si vous ne fournissez pas le _id dans les données JSON d'entrée.