SlideShare a Scribd company logo
1 of 41
MongoDB in C#
By Rich Helton
January 01, 2015
Buy “Mastering NserviceBus with
Persistence”
What is MongoDB
MongoDB is a cross-platform document-
oriented database.
http://en.wikipedia.org/wiki/MongoDB
➢
This means that it is NoSQL, not utilizing the
relational SQL commands, but utilizing JSON-
like documents to query the database.
➢
The JSON-like documents are BSON, Binary
JSON.
➢
MongoDB is free and open source.
➢
http://www.mongodb.org
What is MongoDB
➢
MongoDB is a cross-platform document-
oriented database.
http://en.wikipedia.org/wiki/MongoDB
➢
This means that it is NoSQL, not utilizing the
relational SQL commands, but utilizing JSON-like
documents to query the database.
➢
MongoDB is free and open source.
http://www.mongodb.org
The Motivation
●
Sometimes using a full Microsoft SQL
Server installation, with maintenance for
databases, may be a little overkill for
something as simple as keeping track of a
file history table.
●
The need for access control is still needed
for basic security, so something more than a
File I/O is required.
Installation
●
Installation instructions can be found to install
the correct version by checking the OS from
http://docs.mongodb.org/manual/tutorial/insta
ll-mongodb-on-windows/
●
The download page of the installations for
Windows, OSX, Solaris and Linux can be found
at http://www.mongodb.org/downloads
●
We can optionally move the downloaded files to
“C:mongodb”.
Installation MSI's
●
Alternately, you can just use the MongoDB MSI
file to install the program into the “C:Program
FilesMongoDB” directory.
●
For Win32,
http://dl.mongodb.org/dl/win32/i386
●
For Win64,
http://dl.mongodb.org/dl/win32/x86_64
Startup
●
An data directory needs to be created to store
the database, for example “md datadb”,
which “datadb” is the default directory for
mongod.
●
Running “C:mongodbbinmongod.exe” will
now create the database.
●
The “--auth” argument can be used to force
authentication into the server.
Running mongod.exe
There are many tools for MongoDB
➢
There are many admin tools, some can be
found at
http://docs.mongodb.org/ecosystem/tools/adm
➢
One of the admin tools that supports
multiple platforms and runs in Java is
Umongo, found at
http://edgytech.com/umongo/
Viewing the new database in
UMongo
After downloading Umongo, we run the
applications with the default settings to see
the new database:
Running as a Service
l
To run MongoDB as a service, we need a
config file and we will use the -install option
on this config file.
l
We will create a log directory in the
“C:datadb” directory.
Creating and starting the service
Running “mongod
--logpath=C:datadblogmongo.log
--install” as administrator in the command
prompt:
Viewing the service
After installing the service, we can see the
service running:
A recap of some of the exe's:
● mongo.exe – runs the database shell.
● mongod.exe – the core database.
● mongos.exe – auto sharding process.
● mongodump.exe – dump/export utility.
● mongorestore.exe – restore/import utility.
Start the C#
We will create a Command
program MongoDBConsoleApp1
NuGet the mongocsharpdriver
https://www.nuget.org/packages/mongocsha
rpdriver/
No matter the database, there
needs to be a connectionstring
l
Add an App.config with the “<add
key="connectionString"
value="Server=localhost:27017"/>”. The
default port for MongoDB is port 27017.
Starting the DB connection
l
We will get the connectionstring, and
connect to the database.
BSON and the DB
In order to perform CRUD operations on the
database, a BsonCollection is used to map to
the table. The table is really a collection of
documents. The documents being
name/value pairs.
Here, we have an insert of a document.
More on BSON

BSON is Binary JSON.

It is a name-value pair, in which the value
could be many different data types.

More on BSON can be found at
http://en.wikipedia.org/wiki/BSON
After the insert, verify

After the insert, we can verify the data in
UMongo.

Here, we see that a document was created
in the FileHistory collection.

We can also export the data to a text file.
Viewing the exported file
Code to read the collection

A table is just a collection of documents.
Each document has a name/value pair.

We walk through the collection reading the
name-value pair.
Updating the collection
➢
To update the collection, find the value in
the collection, change it, and save it in the
collection.
Deleting a document
➢
To remove a document, a query has to be
developed that matches a name-value pair.
Deleting a collection (table)
➢
To remove a collection, a drop need only be
performed on the collection.
static void Main(string[] args)
{
// get the App.config Connection String
string connString = ConfigurationManager.AppSettings["connectionString"];
// Get the client connection
var client = new MongoClient(connString);
// Get the MongoServer Object
var server = client.GetServer();
// Gets a link to the DB, will create with first insert
MongoDatabase myDatabase = server.GetDatabase("FileHistory");
// Create a BsonDocument list for the Table
MongoCollection<BsonDocument> filesReceivedTable =
myDatabase.GetCollection<BsonDocument>("BankFilesReceieved");
// Create an individual Table row with the fields
BsonDocument filesReceived = new BsonDocument {
{ "DateReceived", DateTime.Now },
{ "FileName", "BankFile1.txt" }};
// Insert into table
filesReceivedTable.Insert(filesReceived);
// Get the table collection
MongoCollection<BsonDocument> updateTable =
myDatabase.GetCollection<BsonDocument>("BankFilesReceieved");
// Walk through each document updating the name-value pair.
foreach (var filesRead in updateTable.FindAll())
{
foreach (var elements in filesRead.Elements)
{
if (elements.Name == "FileName")
{
elements.Value = "BankNameChanged.txt";
updateTable.Save(filesRead);
}
}
}
// Get the table collection
MongoCollection<BsonDocument> deletingRows =
myDatabase.GetCollection<BsonDocument>("BankFilesReceieved");
// Remove on query where a name = a specific value
deletingRows.Remove(Query.EQ("FileName","BankNameChanged.txt"));
// Get the table collection
MongoCollection<BsonDocument> readingTable =
myDatabase.GetCollection<BsonDocument>("BankFilesReceieved");
// Walk through each document reading the name-value pair.
foreach (var filesRead in readingTable.FindAll())
{
foreach (var elements in filesRead.Elements)
{
Console.WriteLine("Name :" + elements.Name);
Console.WriteLine("Value :" + elements.Value);
}
}
// Get the table collection
MongoCollection<BsonDocument> deletingTable =
myDatabase.GetCollection<BsonDocument>("BankFilesReceieved");
// Delecting the table
deletingTable.Drop();
}
Mongo Shell
Mongo Shell
● The mongo.exe is used to execute shell commands.
http://docs.mongodb.org/manual/reference/mongo-shell/
● The shell commands can be used to show databases, users,
collections, and also create the same.
Adding a user
● Can be created using the
“db.addUser(“user”,”password”) in the
mongo shell.
In C#, adding a user would be
similar to:
In C#, executing the function
could be done as:
In C#, finding all users would be
similar to:
In C#, finding all users would be
similar to:
User Roles
● Just because a user is added, doesn't mean
that the user has assigned roles.
● We can see the roles to be added in the
NoSQL Manager for MongoDB.
Mongo C# Driver
The Mongo C# driver
● The documentation can be found at
http://docs.mongodb.org/ecosystem/drivers/cs
● This was the nuget driver that we installed
earlier as version 1.9.2.
There are c-sharp community projects found
at
http://docs.mongodb.org/ecosystem/drivers/csh
, one of which is MongoCola.
MongoCola
● MongoCola is an c# open source Mongo Admin tool.
● The c-sharp source code for MongoCola can be found at
https://github.com/magicdict/MagicMongoDBTool
Some Admin Tools
Homepages
● MongoCola Homepage
http://osdig.com/project/index/id/22703.html#.VK
● No-SQL Manager for MongoDB
http://www.mongodbmanager.com/

More Related Content

What's hot

Different Types of Containers in Spring
Different Types of Containers in Spring Different Types of Containers in Spring
Different Types of Containers in Spring Sunil kumar Mohanty
 
.NET Core, ASP.NET Core Course, Session 7
.NET Core, ASP.NET Core Course, Session 7.NET Core, ASP.NET Core Course, Session 7
.NET Core, ASP.NET Core Course, Session 7aminmesbahi
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technologyTanmoy Barman
 
Java servlet life cycle - methods ppt
Java servlet life cycle - methods pptJava servlet life cycle - methods ppt
Java servlet life cycle - methods pptkamal kotecha
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & SpringDavid Kiss
 
ASP.NET 12 - State Management
ASP.NET 12 - State ManagementASP.NET 12 - State Management
ASP.NET 12 - State ManagementRandy Connolly
 
.NET Core, ASP.NET Core Course, Session 14
.NET Core, ASP.NET Core Course, Session 14.NET Core, ASP.NET Core Course, Session 14
.NET Core, ASP.NET Core Course, Session 14aminmesbahi
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introductionCommit University
 
Jdbc in servlets
Jdbc in servletsJdbc in servlets
Jdbc in servletsNuha Noor
 
.NET Core, ASP.NET Core Course, Session 18
 .NET Core, ASP.NET Core Course, Session 18 .NET Core, ASP.NET Core Course, Session 18
.NET Core, ASP.NET Core Course, Session 18aminmesbahi
 
.NET Core, ASP.NET Core Course, Session 11
.NET Core, ASP.NET Core Course, Session 11.NET Core, ASP.NET Core Course, Session 11
.NET Core, ASP.NET Core Course, Session 11aminmesbahi
 

What's hot (20)

Different Types of Containers in Spring
Different Types of Containers in Spring Different Types of Containers in Spring
Different Types of Containers in Spring
 
.NET Core, ASP.NET Core Course, Session 7
.NET Core, ASP.NET Core Course, Session 7.NET Core, ASP.NET Core Course, Session 7
.NET Core, ASP.NET Core Course, Session 7
 
java Servlet technology
java Servlet technologyjava Servlet technology
java Servlet technology
 
Java Servlets
Java ServletsJava Servlets
Java Servlets
 
Java servlet life cycle - methods ppt
Java servlet life cycle - methods pptJava servlet life cycle - methods ppt
Java servlet life cycle - methods ppt
 
Data Access with JDBC
Data Access with JDBCData Access with JDBC
Data Access with JDBC
 
Building web applications with Java & Spring
Building web applications with Java & SpringBuilding web applications with Java & Spring
Building web applications with Java & Spring
 
Next stop: Spring 4
Next stop: Spring 4Next stop: Spring 4
Next stop: Spring 4
 
Introduction to spring boot
Introduction to spring bootIntroduction to spring boot
Introduction to spring boot
 
ASP.NET 12 - State Management
ASP.NET 12 - State ManagementASP.NET 12 - State Management
ASP.NET 12 - State Management
 
Jdbc api
Jdbc apiJdbc api
Jdbc api
 
Introduction to Spring Boot
Introduction to Spring BootIntroduction to Spring Boot
Introduction to Spring Boot
 
.NET Core, ASP.NET Core Course, Session 14
.NET Core, ASP.NET Core Course, Session 14.NET Core, ASP.NET Core Course, Session 14
.NET Core, ASP.NET Core Course, Session 14
 
Code igniter - A brief introduction
Code igniter - A brief introductionCode igniter - A brief introduction
Code igniter - A brief introduction
 
Jdbc in servlets
Jdbc in servletsJdbc in servlets
Jdbc in servlets
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
.NET Core, ASP.NET Core Course, Session 18
 .NET Core, ASP.NET Core Course, Session 18 .NET Core, ASP.NET Core Course, Session 18
.NET Core, ASP.NET Core Course, Session 18
 
Spring WebApplication development
Spring WebApplication developmentSpring WebApplication development
Spring WebApplication development
 
Spring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 IntegrationSpring MVC 5 & Hibernate 5 Integration
Spring MVC 5 & Hibernate 5 Integration
 
.NET Core, ASP.NET Core Course, Session 11
.NET Core, ASP.NET Core Course, Session 11.NET Core, ASP.NET Core Course, Session 11
.NET Core, ASP.NET Core Course, Session 11
 

Similar to Mongo db rev001.

Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkStefano Paluello
 
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...buildacloud
 
Open writing-cloud-collab
Open writing-cloud-collabOpen writing-cloud-collab
Open writing-cloud-collabKaren Vuong
 
ZendCon2010 Doctrine MongoDB ODM
ZendCon2010 Doctrine MongoDB ODMZendCon2010 Doctrine MongoDB ODM
ZendCon2010 Doctrine MongoDB ODMJonathan Wage
 
Introduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10genIntroduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10genMongoDB
 
Spring Boot with Microsoft Azure Integration.pdf
Spring Boot with Microsoft Azure Integration.pdfSpring Boot with Microsoft Azure Integration.pdf
Spring Boot with Microsoft Azure Integration.pdfInexture Solutions
 
Introduction to MongoDB with PHP
Introduction to MongoDB with PHPIntroduction to MongoDB with PHP
Introduction to MongoDB with PHPfwso
 
Creating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBCreating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBWildan Maulana
 
ASP.Net Presentation Part2
ASP.Net Presentation Part2ASP.Net Presentation Part2
ASP.Net Presentation Part2Neeraj Mathur
 
Mulesoft file connector
Mulesoft file connectorMulesoft file connector
Mulesoft file connectorkumar gaurav
 
MongoDB - An Introduction
MongoDB - An IntroductionMongoDB - An Introduction
MongoDB - An Introductionsethfloydjr
 
Scripting as a Second Language
Scripting as a Second LanguageScripting as a Second Language
Scripting as a Second LanguageRob Dunn
 

Similar to Mongo db rev001. (20)

Using MongoDB with the .Net Framework
Using MongoDB with the .Net FrameworkUsing MongoDB with the .Net Framework
Using MongoDB with the .Net Framework
 
Local Storage
Local StorageLocal Storage
Local Storage
 
fard car.pptx
fard car.pptxfard car.pptx
fard car.pptx
 
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
Open Writing! Collaborative Authoring for CloudStack Documentation by Jessica...
 
Open writing-cloud-collab
Open writing-cloud-collabOpen writing-cloud-collab
Open writing-cloud-collab
 
ZendCon2010 Doctrine MongoDB ODM
ZendCon2010 Doctrine MongoDB ODMZendCon2010 Doctrine MongoDB ODM
ZendCon2010 Doctrine MongoDB ODM
 
Experiment no 1
Experiment no 1Experiment no 1
Experiment no 1
 
Introduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10genIntroduction to the new official C# Driver developed by 10gen
Introduction to the new official C# Driver developed by 10gen
 
Spring Boot with Microsoft Azure Integration.pdf
Spring Boot with Microsoft Azure Integration.pdfSpring Boot with Microsoft Azure Integration.pdf
Spring Boot with Microsoft Azure Integration.pdf
 
Introduction to MongoDB with PHP
Introduction to MongoDB with PHPIntroduction to MongoDB with PHP
Introduction to MongoDB with PHP
 
Creating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDBCreating, Updating and Deleting Document in MongoDB
Creating, Updating and Deleting Document in MongoDB
 
Mongo learning series
Mongo learning series Mongo learning series
Mongo learning series
 
ASP.Net Presentation Part2
ASP.Net Presentation Part2ASP.Net Presentation Part2
ASP.Net Presentation Part2
 
How do i Meet MongoDB
How do i Meet MongoDBHow do i Meet MongoDB
How do i Meet MongoDB
 
Mulesoft file connector
Mulesoft file connectorMulesoft file connector
Mulesoft file connector
 
Sqllite
SqlliteSqllite
Sqllite
 
MongoDB - An Introduction
MongoDB - An IntroductionMongoDB - An Introduction
MongoDB - An Introduction
 
Endnote windows basic.2017
Endnote windows basic.2017Endnote windows basic.2017
Endnote windows basic.2017
 
Scripting as a Second Language
Scripting as a Second LanguageScripting as a Second Language
Scripting as a Second Language
 
The emerging world of mongo db csp
The emerging world of mongo db   cspThe emerging world of mongo db   csp
The emerging world of mongo db csp
 

More from Rich Helton

Java for Mainframers
Java for MainframersJava for Mainframers
Java for MainframersRich Helton
 
I pad uicatalog_lesson02
I pad uicatalog_lesson02I pad uicatalog_lesson02
I pad uicatalog_lesson02Rich Helton
 
NServicebus WCF Integration 101
NServicebus WCF Integration 101NServicebus WCF Integration 101
NServicebus WCF Integration 101Rich Helton
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce IntroRich Helton
 
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1Rich Helton
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad ProgrammingRich Helton
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in AndroidRich Helton
 
Python For Droid
Python For DroidPython For Droid
Python For DroidRich Helton
 
Spring Roo Rev005
Spring Roo Rev005Spring Roo Rev005
Spring Roo Rev005Rich Helton
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Rich Helton
 
C#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalC#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalRich Helton
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity FrameworksRich Helton
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and DebuggingRich Helton
 
Web Application Firewall intro
Web Application Firewall introWeb Application Firewall intro
Web Application Firewall introRich Helton
 
Java Web Security Class
Java Web Security ClassJava Web Security Class
Java Web Security ClassRich Helton
 

More from Rich Helton (20)

Java for Mainframers
Java for MainframersJava for Mainframers
Java for Mainframers
 
I pad uicatalog_lesson02
I pad uicatalog_lesson02I pad uicatalog_lesson02
I pad uicatalog_lesson02
 
NServicebus WCF Integration 101
NServicebus WCF Integration 101NServicebus WCF Integration 101
NServicebus WCF Integration 101
 
Azure rev002
Azure rev002Azure rev002
Azure rev002
 
Salesforce Intro
Salesforce IntroSalesforce Intro
Salesforce Intro
 
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1LEARNING	 iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
LEARNING  iPAD STORYBOARDS IN OBJ-­‐C LESSON 1
 
Learning C# iPad Programming
Learning C# iPad ProgrammingLearning C# iPad Programming
Learning C# iPad Programming
 
First Steps in Android
First Steps in AndroidFirst Steps in Android
First Steps in Android
 
NServiceBus
NServiceBusNServiceBus
NServiceBus
 
Python For Droid
Python For DroidPython For Droid
Python For Droid
 
Spring Roo Rev005
Spring Roo Rev005Spring Roo Rev005
Spring Roo Rev005
 
Python Final
Python FinalPython Final
Python Final
 
Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4Overview of CSharp MVC3 and EF4
Overview of CSharp MVC3 and EF4
 
Adobe Flex4
Adobe Flex4 Adobe Flex4
Adobe Flex4
 
C#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 FinalC#Web Sec Oct27 2010 Final
C#Web Sec Oct27 2010 Final
 
Jira Rev002
Jira Rev002Jira Rev002
Jira Rev002
 
Sql Injection and Entity Frameworks
Sql Injection and Entity FrameworksSql Injection and Entity Frameworks
Sql Injection and Entity Frameworks
 
C# Security Testing and Debugging
C# Security Testing and DebuggingC# Security Testing and Debugging
C# Security Testing and Debugging
 
Web Application Firewall intro
Web Application Firewall introWeb Application Firewall intro
Web Application Firewall intro
 
Java Web Security Class
Java Web Security ClassJava Web Security Class
Java Web Security Class
 

Recently uploaded

Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Enterprise Knowledge
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embeddingZilliz
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 

Recently uploaded (20)

DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 
Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024Designing IA for AI - Information Architecture Conference 2024
Designing IA for AI - Information Architecture Conference 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Training state-of-the-art general text embedding
Training state-of-the-art general text embeddingTraining state-of-the-art general text embedding
Training state-of-the-art general text embedding
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 

Mongo db rev001.

  • 1. MongoDB in C# By Rich Helton January 01, 2015 Buy “Mastering NserviceBus with Persistence”
  • 2. What is MongoDB MongoDB is a cross-platform document- oriented database. http://en.wikipedia.org/wiki/MongoDB ➢ This means that it is NoSQL, not utilizing the relational SQL commands, but utilizing JSON- like documents to query the database. ➢ The JSON-like documents are BSON, Binary JSON. ➢ MongoDB is free and open source. ➢ http://www.mongodb.org
  • 3. What is MongoDB ➢ MongoDB is a cross-platform document- oriented database. http://en.wikipedia.org/wiki/MongoDB ➢ This means that it is NoSQL, not utilizing the relational SQL commands, but utilizing JSON-like documents to query the database. ➢ MongoDB is free and open source. http://www.mongodb.org
  • 4. The Motivation ● Sometimes using a full Microsoft SQL Server installation, with maintenance for databases, may be a little overkill for something as simple as keeping track of a file history table. ● The need for access control is still needed for basic security, so something more than a File I/O is required.
  • 5. Installation ● Installation instructions can be found to install the correct version by checking the OS from http://docs.mongodb.org/manual/tutorial/insta ll-mongodb-on-windows/ ● The download page of the installations for Windows, OSX, Solaris and Linux can be found at http://www.mongodb.org/downloads ● We can optionally move the downloaded files to “C:mongodb”.
  • 6. Installation MSI's ● Alternately, you can just use the MongoDB MSI file to install the program into the “C:Program FilesMongoDB” directory. ● For Win32, http://dl.mongodb.org/dl/win32/i386 ● For Win64, http://dl.mongodb.org/dl/win32/x86_64
  • 7. Startup ● An data directory needs to be created to store the database, for example “md datadb”, which “datadb” is the default directory for mongod. ● Running “C:mongodbbinmongod.exe” will now create the database. ● The “--auth” argument can be used to force authentication into the server.
  • 9. There are many tools for MongoDB ➢ There are many admin tools, some can be found at http://docs.mongodb.org/ecosystem/tools/adm ➢ One of the admin tools that supports multiple platforms and runs in Java is Umongo, found at http://edgytech.com/umongo/
  • 10. Viewing the new database in UMongo After downloading Umongo, we run the applications with the default settings to see the new database:
  • 11. Running as a Service l To run MongoDB as a service, we need a config file and we will use the -install option on this config file. l We will create a log directory in the “C:datadb” directory.
  • 12. Creating and starting the service Running “mongod --logpath=C:datadblogmongo.log --install” as administrator in the command prompt:
  • 13. Viewing the service After installing the service, we can see the service running:
  • 14. A recap of some of the exe's: ● mongo.exe – runs the database shell. ● mongod.exe – the core database. ● mongos.exe – auto sharding process. ● mongodump.exe – dump/export utility. ● mongorestore.exe – restore/import utility.
  • 16. We will create a Command program MongoDBConsoleApp1
  • 18. No matter the database, there needs to be a connectionstring l Add an App.config with the “<add key="connectionString" value="Server=localhost:27017"/>”. The default port for MongoDB is port 27017.
  • 19. Starting the DB connection l We will get the connectionstring, and connect to the database.
  • 20. BSON and the DB In order to perform CRUD operations on the database, a BsonCollection is used to map to the table. The table is really a collection of documents. The documents being name/value pairs. Here, we have an insert of a document.
  • 21. More on BSON  BSON is Binary JSON.  It is a name-value pair, in which the value could be many different data types.  More on BSON can be found at http://en.wikipedia.org/wiki/BSON
  • 22. After the insert, verify  After the insert, we can verify the data in UMongo.  Here, we see that a document was created in the FileHistory collection.  We can also export the data to a text file.
  • 24. Code to read the collection  A table is just a collection of documents. Each document has a name/value pair.  We walk through the collection reading the name-value pair.
  • 25. Updating the collection ➢ To update the collection, find the value in the collection, change it, and save it in the collection.
  • 26. Deleting a document ➢ To remove a document, a query has to be developed that matches a name-value pair.
  • 27. Deleting a collection (table) ➢ To remove a collection, a drop need only be performed on the collection.
  • 28. static void Main(string[] args) { // get the App.config Connection String string connString = ConfigurationManager.AppSettings["connectionString"]; // Get the client connection var client = new MongoClient(connString); // Get the MongoServer Object var server = client.GetServer(); // Gets a link to the DB, will create with first insert MongoDatabase myDatabase = server.GetDatabase("FileHistory"); // Create a BsonDocument list for the Table MongoCollection<BsonDocument> filesReceivedTable = myDatabase.GetCollection<BsonDocument>("BankFilesReceieved"); // Create an individual Table row with the fields BsonDocument filesReceived = new BsonDocument { { "DateReceived", DateTime.Now }, { "FileName", "BankFile1.txt" }}; // Insert into table filesReceivedTable.Insert(filesReceived); // Get the table collection MongoCollection<BsonDocument> updateTable = myDatabase.GetCollection<BsonDocument>("BankFilesReceieved"); // Walk through each document updating the name-value pair. foreach (var filesRead in updateTable.FindAll()) { foreach (var elements in filesRead.Elements) { if (elements.Name == "FileName") { elements.Value = "BankNameChanged.txt"; updateTable.Save(filesRead); } } }
  • 29. // Get the table collection MongoCollection<BsonDocument> deletingRows = myDatabase.GetCollection<BsonDocument>("BankFilesReceieved"); // Remove on query where a name = a specific value deletingRows.Remove(Query.EQ("FileName","BankNameChanged.txt")); // Get the table collection MongoCollection<BsonDocument> readingTable = myDatabase.GetCollection<BsonDocument>("BankFilesReceieved"); // Walk through each document reading the name-value pair. foreach (var filesRead in readingTable.FindAll()) { foreach (var elements in filesRead.Elements) { Console.WriteLine("Name :" + elements.Name); Console.WriteLine("Value :" + elements.Value); } } // Get the table collection MongoCollection<BsonDocument> deletingTable = myDatabase.GetCollection<BsonDocument>("BankFilesReceieved"); // Delecting the table deletingTable.Drop(); }
  • 31. Mongo Shell ● The mongo.exe is used to execute shell commands. http://docs.mongodb.org/manual/reference/mongo-shell/ ● The shell commands can be used to show databases, users, collections, and also create the same.
  • 32. Adding a user ● Can be created using the “db.addUser(“user”,”password”) in the mongo shell.
  • 33. In C#, adding a user would be similar to:
  • 34. In C#, executing the function could be done as:
  • 35. In C#, finding all users would be similar to:
  • 36. In C#, finding all users would be similar to:
  • 37. User Roles ● Just because a user is added, doesn't mean that the user has assigned roles. ● We can see the roles to be added in the NoSQL Manager for MongoDB.
  • 39. The Mongo C# driver ● The documentation can be found at http://docs.mongodb.org/ecosystem/drivers/cs ● This was the nuget driver that we installed earlier as version 1.9.2. There are c-sharp community projects found at http://docs.mongodb.org/ecosystem/drivers/csh , one of which is MongoCola.
  • 40. MongoCola ● MongoCola is an c# open source Mongo Admin tool. ● The c-sharp source code for MongoCola can be found at https://github.com/magicdict/MagicMongoDBTool
  • 41. Some Admin Tools Homepages ● MongoCola Homepage http://osdig.com/project/index/id/22703.html#.VK ● No-SQL Manager for MongoDB http://www.mongodbmanager.com/

Editor's Notes

  1. Give a brief overview of the presentation. Describe the major focus of the presentation and why it is important. Introduce each of the major topics. To provide a road map for the audience, you can repeat this Overview slide throughout the presentation, highlighting the particular topic you will discuss next.