sql >> Database >  >> NoSQL >> MongoDB

Een script maken om MongoDB-verzamelingen van Mongo-shell te maken?

Maak een bestand met de naam "my_scripts.js", met de volgende opdrachten. Dit JavaScript definieert de gegevens en opdrachten om twee verzamelingen te maken (dogs en cats ), hun gegevens (documenten als JSON) en de indexen (indexen worden aangemaakt op de name veld van de collectie).

mijn_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);
}


Voer het scriptbestand uit:

Van de mongoschelp voer het script uit als (u kunt het bestandspad specificeren met de load commando):

mongo > load("my_script.js");

Nadat het script is uitgevoerd, kunt u de volgende opdrachten afzonderlijk gebruiken om de collecties, hun documenten en de indexen te verifiëren:

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

Let op:de documenten hebben een unieke _id veld (van het type ObjectId ) gemaakt als u de _id . niet opgeeft in de invoer JSON-gegevens.



  1. Sails.js-upgrade naar v1 hoofdlettergevoelige query's

  2. MongoDB:documenten ophalen met tags

  3. $push en $set in dezelfde MongoDB-update

  4. Mongoose/mongoDB-query voegt zich bij ... maar ik kom uit een sql-achtergrond