Upload
serdar-buyuktemiz
View
1.234
Download
3
Tags:
Embed Size (px)
DESCRIPTION
Citation preview
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
Demo
• https://bitbucket.org/serdarb/mongo-c-driver-poc
• https://github.com/serdarb/Mongo-C--Driver-POC
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/