2013-03-23 - nosql spartakiade
DESCRIPTION
My slides for the spartakiade conference in Berlin. I was talking about NoSQL with Redis, RavenDB and MongoDB. 145 hard slides - this is SPARTA!TRANSCRIPT
![Page 1: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/1.jpg)
![Page 2: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/2.jpg)
![Page 3: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/3.jpg)
![Page 4: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/4.jpg)
![Page 5: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/5.jpg)
![Page 6: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/6.jpg)
![Page 7: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/7.jpg)
![Page 8: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/8.jpg)
![Page 9: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/9.jpg)
![Page 10: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/10.jpg)
![Page 11: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/11.jpg)
![Page 12: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/12.jpg)
![Page 13: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/13.jpg)
![Page 14: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/14.jpg)
![Page 15: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/15.jpg)
![Page 16: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/16.jpg)
Redis
![Page 17: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/17.jpg)
![Page 18: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/18.jpg)
![Page 19: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/19.jpg)
![Page 20: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/20.jpg)
![Page 21: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/21.jpg)
![Page 22: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/22.jpg)
![Page 23: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/23.jpg)
![Page 24: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/24.jpg)
› SET note1:title "Mittag"
› SET note1:message "nicht vergessen"
› KEYS note1:*
› GET note1:title
› DEL note1:title note1:message
![Page 25: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/25.jpg)
![Page 26: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/26.jpg)
![Page 27: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/27.jpg)
![Page 28: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/28.jpg)
![Page 29: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/29.jpg)
http://bit.ly/ISv9f6
![Page 30: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/30.jpg)
![Page 31: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/31.jpg)
avenDBR
![Page 32: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/32.jpg)
![Page 33: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/33.jpg)
![Page 34: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/34.jpg)
››
![Page 35: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/35.jpg)
›
![Page 36: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/36.jpg)
››
››
![Page 38: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/38.jpg)
›
![Page 39: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/39.jpg)
››
![Page 40: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/40.jpg)
![Page 41: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/41.jpg)
›››
›
![Page 42: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/42.jpg)
using (var documentStore = new EmbeddableDocumentStore{ RunInMemory = true}.Initialize()) { using (var session = documentStore.OpenSession()) { // Run complex test scenarious } }
![Page 43: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/43.jpg)
››
›››
![Page 44: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/44.jpg)
Ayende Rahien on the HTTP API - http://ravendb.net/documentation/docs-http-api-restful
![Page 45: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/45.jpg)
›››
C:\>curl -X GET http://localhost:8080/docs/Categories/1 -i HTTP/1.1 200 OK Content-Type: application/json; charset=utf-8 ETag: 00000000-0000-0200-0000-000000000004 { "Name" : "Normal Importance", "Color" : "green" }
![Page 46: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/46.jpg)
![Page 47: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/47.jpg)
var notes = session.Advanced .LuceneQuery<Note>() .Where("Category:Important") .ToArray();
var notes = session .Query<Note>() .Where(n => n.Category == "Important") .ToArray();
![Page 48: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/48.jpg)
MongoDB
![Page 49: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/49.jpg)
![Page 50: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/50.jpg)
![Page 51: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/51.jpg)
![Page 52: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/52.jpg)
![Page 53: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/53.jpg)
![Page 54: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/54.jpg)
IBM’s IMS
Codd publishes relational model paper
in 1970
1966 1969 1970 1985 2000 2004 2007
Agile becoming more popular
1990’s 2009
CODASYL model published
Term “object-oriented database” appears
Brewer’s CAP born
Google BigTable
Amazon Dynamo
Apache Cassandra initial release
2008
MongoDB initial release
1973 1974
INGRES
SQL invented
1977
Oracle founded
10gen founded
NoSQL Movement
![Page 55: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/55.jpg)
![Page 56: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/56.jpg)
![Page 57: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/57.jpg)
›
››
![Page 58: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/58.jpg)
![Page 59: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/59.jpg)
–
› use WebNote
› db.Notes.save( { Title: 'Mittag', Message: 'nicht vergessen‘ } );
› db.Notes.save
![Page 60: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/60.jpg)
–
for(i=0; i<1000; i++) {
['quiz', 'essay', 'exam'].forEach(function(name) {
var score = Math.floor(Math.random() * 50) + 50;
db.scores.save({student: i, name: name, score: score});
});
}
db.scores.count();
![Page 61: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/61.jpg)
–
› db.Notes.find();
› db.Notes.find({ Title: /Test/i });
› db.Notes.find( { "Categories.Color": "red"}).limit(1);
![Page 62: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/62.jpg)
–
› db.Notes.update({Title: 'Test'}, {'$set': {Categories: []}});
› db.Notes.update({Title: 'Test'}, {'$push': {
Categories: {Color: 'Red'} }
});
![Page 63: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/63.jpg)
–
› db.dropDatabase();
› db.Notes.drop();
› db.Notes.remove();
![Page 64: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/64.jpg)
![Page 65: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/65.jpg)
![Page 66: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/66.jpg)
Consistency
![Page 67: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/67.jpg)
![Page 68: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/68.jpg)
![Page 69: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/69.jpg)
![Page 70: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/70.jpg)
![Page 71: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/71.jpg)
![Page 72: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/72.jpg)
![Page 73: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/73.jpg)
![Page 74: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/74.jpg)
![Page 75: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/75.jpg)
![Page 76: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/76.jpg)
![Page 77: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/77.jpg)
![Page 78: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/78.jpg)
![Page 79: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/79.jpg)
![Page 80: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/80.jpg)
Hands ON!
![Page 81: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/81.jpg)
![Page 82: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/82.jpg)
use digg
db.stories.findOne();
![Page 83: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/83.jpg)
![Page 84: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/84.jpg)
› use digg;
› db.people.update({name: 'Smith'},
{'$set': {interests: []}});
› db.people.update({name: 'Smith'}, {'$push': {interests: ['chess']}});
![Page 85: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/85.jpg)
![Page 86: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/86.jpg)
![Page 87: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/87.jpg)
![Page 88: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/88.jpg)
var map = function() {
emit(this.user.name, {diggs: this.diggs, posts: 0});
};
![Page 89: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/89.jpg)
var reduce = function(key, values) {
var diggs = 0;
var posts = 0;
values.forEach(function(doc) {
diggs += doc.diggs;
posts += 1;
});
return {diggs: diggs, posts: posts};
};
![Page 90: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/90.jpg)
db.stories.mapReduce(map, reduce, {out: 'digg_users'});
db.digg_users.find();
![Page 91: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/91.jpg)
![Page 92: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/92.jpg)
![Page 93: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/93.jpg)
JaWOHL!
![Page 94: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/94.jpg)
Schema
Design
![Page 95: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/95.jpg)
![Page 96: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/96.jpg)
http://bsonspec.org
![Page 97: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/97.jpg)
![Page 98: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/98.jpg)
![Page 99: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/99.jpg)
![Page 100: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/100.jpg)
![Page 101: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/101.jpg)
![Page 102: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/102.jpg)
![Page 103: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/103.jpg)
![Page 104: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/104.jpg)
![Page 105: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/105.jpg)
![Page 106: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/106.jpg)
![Page 107: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/107.jpg)
![Page 108: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/108.jpg)
> db.shapes.find()
› { _id: "1", type: "c", area: 3.14, radius: 1}
› { _id: "2", type: "s", area: 4, length: 2}
› { _id: "3", type: "r", area: 10, length: 5, width: 2}
// Shapes mit radius > 0 finden
> db.shapes.find( { radius: { $gt: 0 } } )
![Page 109: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/109.jpg)
![Page 110: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/110.jpg)
blogs: { author : “Johannes", date : ISODate("2011-09-18T09:56:06.298Z"), comments : [ { author : “Klaus", date : ISODate("2011-09-19T09:56:06.298Z"), text : “toller Artikel" } ] }
![Page 111: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/111.jpg)
![Page 112: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/112.jpg)
blogs: { _id: 1000, author: “Johannes", date: ISODate("2011-09-18"), comments: [ {comment : 1)} ]}
comments : { _id : 1, blog: 1000, author : “Klaus", date : ISODate("2011-09-19")} > blog = db.blogs.find({ text: "Destination Moon" }); > db.comments.find( { blog: blog._id } );
![Page 113: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/113.jpg)
![Page 114: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/114.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
![Page 115: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/115.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
// Jede Kategorie verlinkt die IDs der Produkte
categories:
{ _id: 20, name: "adventure",
product_ids: [ 10, 11, 12 ] }
categories:
{ _id: 21, name: "movie",
product_ids: [ 10 ] }
![Page 116: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/116.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
// Jede Kategorie verlinkt die IDs der Produkte
categories:
{ _id: 20, name: "adventure",
product_ids: [ 10, 11, 12 ] }
categories:
{ _id: 21, name: "movie",
product_ids: [ 10 ] }
// Alle Kategorien für ein Produkt
> db.categories.find( { product_ids: 10 } )
![Page 117: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/117.jpg)
![Page 118: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/118.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
// Kategorien beinhalten keine Assoziationen
categories:
{ _id: 20,
name: "adventure"}
![Page 119: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/119.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
// Kategorien beinhalten keine Assoziationen
categories:
{ _id: 20,
name: "adventure"}
// Alle Produkte für eine Kategorie
> db.products.find( { category_ids: 20 } )
![Page 120: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/120.jpg)
// Jedes Produkt verlinkt die IDs der Kategorien
products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
// Kategorien beinhalten keine Assoziationen
categories:
{ _id: 20,
name: "adventure"}
// Alle Produkte für eine Kategorie
> db.products.find( { category_ids: 20 } )
// Alle Kategorien für ein Produkt product
> product = db.products.find( { _id: some_id } )
> db.categories.find({_id: {$in : product.category_ids}})
![Page 121: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/121.jpg)
![Page 122: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/122.jpg)
Software Tests
![Page 123: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/123.jpg)
![Page 124: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/124.jpg)
![Page 125: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/125.jpg)
![Page 126: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/126.jpg)
![Page 127: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/127.jpg)
![Page 128: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/128.jpg)
“ ”J.B. Rainsberger
![Page 129: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/129.jpg)
![Page 130: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/130.jpg)
![Page 131: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/131.jpg)
![Page 132: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/132.jpg)
![Page 133: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/133.jpg)
![Page 134: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/134.jpg)
![Page 135: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/135.jpg)
![Page 136: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/136.jpg)
using (var documentStore = new EmbeddableDocumentStore{ RunInMemory = true}.Initialize()) { using (var session = documentStore.OpenSession()) { // Run complex test scenarious } }
![Page 137: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/137.jpg)
![Page 139: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/139.jpg)
using (var runner = MongoDbRunner.Start()) { var collection = new MongoClient(runner.ConnectionString) .GetServer() .GetDatabase("TestDatabase") .GetCollection<TestDocument>("TestCollection"); // Run complex test scenarious }
![Page 140: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/140.jpg)
![Page 141: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/141.jpg)
![Page 142: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/142.jpg)
Vielen Dank!
![Page 143: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/143.jpg)
![Page 144: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/144.jpg)
![Page 145: 2013-03-23 - NoSQL Spartakiade](https://reader034.vdocuments.net/reader034/viewer/2022051111/55512abcb4c905325d8b49a0/html5/thumbnails/145.jpg)
PAUSE!