Instantly share code, notes, and snippets.

Embed
What would you like to do?
// author: Gary A. Stafford
// site: https://programmaticponderings.com
// license: MIT License
// Reference: https://docs.microsoft.com/en-us/azure/cosmos-db/mongodb-samples
// Insert Azure Facts into Cosmos DB Collection
'use strict';
/* CONSTANTS */
const mongoClient = require('mongodb').MongoClient;
const assert = require('assert');
const COSMOS_DB_CONN_STR = process.env.COSMOS_DB_CONN_STR;
const DB_COLLECTION = "azuretechfacts";
const azureFacts = [
{
"fact": "certifications",
"title": "Azure Certifications",
"image": "image-06.png",
"response": "As of June 2018, Microsoft offered ten Azure certification exams, allowing IT professionals the ability to differentiate themselves and validate their knowledge and skills."
},
{
"fact": "cognitive",
"title": "Cognitive Services",
"image": "image-09.png",
"response": "Azure's intelligent algorithms allow apps to see, hear, speak, understand and interpret user needs through natural methods of communication."
},
{
"fact": "competition",
"title": "Azure's Competition",
"image": "image-05.png",
"response": "According to the G2 Crowd website, Azure's Cloud competitors include Amazon Web Services (AWS), Digital Ocean, Google Compute Engine (GCE), and Rackspace."
},
{
"fact": "compliance",
"title": "Compliance",
"image": "image-06.png",
"response": "Microsoft provides the most comprehensive set of compliance offerings (including certifications and attestations) of any cloud service provider."
},
{
"fact": "cosmos",
"title": "Azure Cosmos DB",
"image": "image-17.png",
"response": "According to Microsoft, Cosmos DB is a globally distributed, multi-model database service, designed for low latency and scalable applications anywhere in the world, with native support for NoSQL."
},
{
"fact": "kubernetes",
"title": "Azure Kubernetes Service (AKS)",
"image": "image-18.png",
"response": "According to Microsoft, Azure Kubernetes Service (AKS) is a fully managed Kubernetes container orchestration service, which simplifies Kubernetes management, deployment, and operations."
}
];
const insertDocuments = function (db, callback) {
db.collection(DB_COLLECTION).insertMany(azureFacts, function (err, result) {
assert.equal(err, null);
console.log(`Inserted documents into the ${DB_COLLECTION} collection.`);
callback();
});
};
const findDocuments = function (db, callback) {
const cursor = db.collection(DB_COLLECTION).find();
cursor.each(function (err, doc) {
assert.equal(err, null);
if (doc != null) {
console.dir(doc);
} else {
callback();
}
});
};
const deleteDocuments = function (db, callback) {
db.collection(DB_COLLECTION).deleteMany(
{},
function (err, results) {
console.log(results);
callback();
}
);
};
mongoClient.connect(COSMOS_DB_CONN_STR, function (err, client) {
assert.equal(null, err);
const db = client.db(DB_COLLECTION);
deleteDocuments(db, function () {
insertDocuments(db, function () {
findDocuments(db, function () {
client.close();
});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment