Mongo db first steps with csharp

Post on 15-Jan-2015

1,223 views 3 download

Tags:

description

 

transcript

MongoDB And C#

About me

Serdar Büyüktemiz

@hserdarb

altdotnetturkiye

Software Developer @ Mavituna Security

Why MongoDB?

• Popular

• Easy to use nosql

• Good for web projects

• High performance (No joins and embedding makes reads and writes fast)

• High availability (Replicated servers with automatic master failover)

• Easy scalability (Automatic sharding)

RDBMS => MongoDB

RDBMS MongoDB

Table, View Collection

Row JSON Document

Index Index

Join Embeded Document

Partition Shard

Partition Key Shard Key

Awesome web tutorial

http://tutorial.mongly.com/tutorial Thanks to Karl Seguin

Official C# Driver

Connecting to MongoDB

• If DB does not exists driver will create one for you

• http://www.mongodb.org/display/DOCS/CSharp+Driver+Tutorial#CSharpDriverTut

orial-Connectionstrings

• mongodb://[username:password@]hostname[:port][/[database][?options]]

MongoCollection

What is BSON?

• MongoDB uses BSON as the data storage and network transfer format for "documents".

• Short for Binary JSON

• http://bsonspec.org/

• http://www.mongodb.org/display/DOCS/BSON

Working with POCOs

• Things can be really easy for you if you follow these rules for your pocos

– Has a public no-argument constructor

– Has a public get set property for each value you want to have serialized

Let’s add the first item

Let’s find (Query) it

Creating indexes for performance

A tip for better indexing

• Run mongodb with notablescan parameter and be sure your your queries are not making full table scans...

– You get exceptions if a query needs a table scan, it gives you a chance to fix your indexes on development time.

Sources

• http://www.mongodb.org/display/DOCS/Introduction • http://mongly.com/Multiple-Collections-Versus-Embedded-Documents/ • http://openmymind.net/mongodb.pdf • http://www.mongodb.org/display/DOCS/Padding+Factor • https://github.com/mongodb/mongo • http://www.codeproject.com/Articles/273145/Using-MongoDB-with-the-

Official-Csharp-Driver • http://stackoverflow.com/questions/4067197/mongodb-and-joins • http://www.mongodb.org/display/DOCS/Schema+Design#SchemaDesign-

EmbeddingandLinking • http://docs.mongodb.org/manual/applications/database-references/ • http://www.10gen.com/presentations?programming_lang=46 • https://speakerdeck.com/mongodb/whats-new-in-the-net-driver • http://learnmongo.com/