SlideShare une entreprise Scribd logo
1  sur  104
Télécharger pour lire hors ligne
›   SET note1:title "Mittag"
›   SET note1:message "nicht vergessen"

›   KEYS note1:*
›   GET note1:title
›   DEL note1:title note1:message
http://bit.ly/ISv9f6
›
›
http://bsonspec.org

–
›   use WebNote
›   db.Notes.save(
       {
         Title: 'Mittag',
         Message: 'nicht vergessen‘
       }
    );




›   db.Notes.save
–

›   db.Notes.find();
›   db.Notes.find({ Title: /Test/i });
›   db.Notes.find(
      { "Categories.Color": "red"}).limit(1);
–
›   db.Notes.update({Title: 'Test'},
                    {'$set': {Categories: []}});

›   db.Notes.update({Title: 'Test'},
                    {'$push': {
                                Categories:
                                {Color: 'Red'}
                              }
                    });
–
›   db.dropDatabase();
›   db.Notes.drop();
›   db.Notes.remove();
NULL   NULL



NULL          NULL



NULL
> 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 } } )
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"
      }
    ]
}
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 } );
// Jedes Produkt verlinkt die IDs der Kategorien
products:
      { _id: 10, name: "Destination Moon",
        category_ids: [ 20, 30 ] }
// 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 ] }
// 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 } )
// 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"}
// 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 } )
// 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}})
›   
›   
›
›
›
›
›
›
›
›
›
›
›
CODASYL model                   SQL               Agile becoming more   Google            MongoDB initial
   published                  invented                    popular        BigTable             release




IBM’s                                     Oracle                   Brewer’s      Amazon
 IMS                  INGRES             founded                   CAP born      Dynamo




1966    1969   1970    1973     1974     1977      1985   1990’s     2000     2004    2007 2008 2009


                                                                                  10gen        NoSQL
       Codd publishes                     Term “object-oriented                  founded      Movement
   relational model paper                   database” appears
           in 1970                                                                   Apache Cassandra
                                                                                       initial release
2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB

Contenu connexe

En vedette

2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
Johannes Hoppe
 
DMDW Extra Lesson - NoSql and MongoDB
DMDW  Extra Lesson - NoSql and MongoDBDMDW  Extra Lesson - NoSql and MongoDB
DMDW Extra Lesson - NoSql and MongoDB
Johannes Hoppe
 

En vedette (9)

2011-12-13 NoSQL aus der Praxis
2011-12-13 NoSQL aus der Praxis2011-12-13 NoSQL aus der Praxis
2011-12-13 NoSQL aus der Praxis
 
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
2012-03-20 - Getting started with Node.js and MongoDB on MS Azure
 
2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDB2012-05-14 NoSQL in .NET - mit Redis und MongoDB
2012-05-14 NoSQL in .NET - mit Redis und MongoDB
 
2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo db2013 02-26 - Software Tests with Mongo db
2013 02-26 - Software Tests with Mongo db
 
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
2012-10-12 - NoSQL in .NET - mit Redis und Mongodb
 
2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDB2012-09-17 - WDC12: Node.js & MongoDB
2012-09-17 - WDC12: Node.js & MongoDB
 
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
2012-08-29 - NoSQL Bootcamp (Redis, RavenDB & MongoDB für .NET Entwickler)
 
DMDW Extra Lesson - NoSql and MongoDB
DMDW  Extra Lesson - NoSql and MongoDBDMDW  Extra Lesson - NoSql and MongoDB
DMDW Extra Lesson - NoSql and MongoDB
 
2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung Mosbach2015 02-09 - NoSQL Vorlesung Mosbach
2015 02-09 - NoSQL Vorlesung Mosbach
 

Similaire à 2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB

Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3
ginettateam
 

Similaire à 2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB (10)

MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)MongoDB für Java Programmierer (JUGKA, 11.12.13)
MongoDB für Java Programmierer (JUGKA, 11.12.13)
 
Back to Basics German 2: Erstellen Sie Ihre erste Anwendung in MongoDB
Back to Basics German 2: Erstellen Sie Ihre erste Anwendung in MongoDBBack to Basics German 2: Erstellen Sie Ihre erste Anwendung in MongoDB
Back to Basics German 2: Erstellen Sie Ihre erste Anwendung in MongoDB
 
OOP 2013: Praktische Einführung in MongoDB
OOP 2013: Praktische Einführung in MongoDBOOP 2013: Praktische Einführung in MongoDB
OOP 2013: Praktische Einführung in MongoDB
 
Back to Basics-Webinar 5: Einführung in das Aggregation-Framework
Back to Basics-Webinar 5: Einführung in das Aggregation-FrameworkBack to Basics-Webinar 5: Einführung in das Aggregation-Framework
Back to Basics-Webinar 5: Einführung in das Aggregation-Framework
 
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
Java Code Quality: Gute Software braucht guten Code - Regeln für verständlich...
 
Macit Kandemir, Flexible Datenbank-Anwendungen mit MongoDB
Macit Kandemir, Flexible Datenbank-Anwendungen mit MongoDBMacit Kandemir, Flexible Datenbank-Anwendungen mit MongoDB
Macit Kandemir, Flexible Datenbank-Anwendungen mit MongoDB
 
Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3Schöneres Web mit HTML5 + CSS3
Schöneres Web mit HTML5 + CSS3
 
Performance trotz Entity Framwork
Performance trotz Entity FramworkPerformance trotz Entity Framwork
Performance trotz Entity Framwork
 
JavaScript & jQuery
JavaScript & jQueryJavaScript & jQuery
JavaScript & jQuery
 
Einfacher bauen
Einfacher bauenEinfacher bauen
Einfacher bauen
 

Plus de Johannes Hoppe

2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
Johannes Hoppe
 
2012-04-12 - AOP .NET UserGroup Niederrhein
2012-04-12 - AOP .NET UserGroup Niederrhein2012-04-12 - AOP .NET UserGroup Niederrhein
2012-04-12 - AOP .NET UserGroup Niederrhein
Johannes Hoppe
 
2011-06-27 - AOP - .NET User Group Rhein Neckar
2011-06-27 - AOP - .NET User Group Rhein Neckar2011-06-27 - AOP - .NET User Group Rhein Neckar
2011-06-27 - AOP - .NET User Group Rhein Neckar
Johannes Hoppe
 
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
Johannes Hoppe
 

Plus de Johannes Hoppe (20)

2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach2017 - NoSQL Vorlesung Mosbach
2017 - NoSQL Vorlesung Mosbach
 
NoSQL - Hands on
NoSQL - Hands onNoSQL - Hands on
NoSQL - Hands on
 
Einführung in Angular 2
Einführung in Angular 2Einführung in Angular 2
Einführung in Angular 2
 
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und IonicMDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
MDC kompakt 2014: Hybride Apps mit Cordova, AngularJS und Ionic
 
2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf Azure2012-06-25 - MapReduce auf Azure
2012-06-25 - MapReduce auf Azure
 
2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript Security2013-06-25 - HTML5 & JavaScript Security
2013-06-25 - HTML5 & JavaScript Security
 
2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript2013-06-24 - Software Craftsmanship with JavaScript
2013-06-24 - Software Craftsmanship with JavaScript
 
2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript2013-06-15 - Software Craftsmanship mit JavaScript
2013-06-15 - Software Craftsmanship mit JavaScript
 
2013 05-03 - HTML5 & JavaScript Security
2013 05-03 -  HTML5 & JavaScript Security2013 05-03 -  HTML5 & JavaScript Security
2013 05-03 - HTML5 & JavaScript Security
 
2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade2013-03-23 - NoSQL Spartakiade
2013-03-23 - NoSQL Spartakiade
 
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
2013-02-21 - .NET UG Rhein-Neckar: JavaScript Best Practices
 
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL2012-10-16 - WebTechCon 2012: HTML5 & WebGL
2012-10-16 - WebTechCon 2012: HTML5 & WebGL
 
2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGL2012-09-18 - HTML5 & WebGL
2012-09-18 - HTML5 & WebGL
 
2012-04-12 - AOP .NET UserGroup Niederrhein
2012-04-12 - AOP .NET UserGroup Niederrhein2012-04-12 - AOP .NET UserGroup Niederrhein
2012-04-12 - AOP .NET UserGroup Niederrhein
 
2011-06-27 - AOP - .NET User Group Rhein Neckar
2011-06-27 - AOP - .NET User Group Rhein Neckar2011-06-27 - AOP - .NET User Group Rhein Neckar
2011-06-27 - AOP - .NET User Group Rhein Neckar
 
DMDW 8. Student Presentation - Groovy to MongoDB
DMDW 8. Student Presentation - Groovy to MongoDBDMDW 8. Student Presentation - Groovy to MongoDB
DMDW 8. Student Presentation - Groovy to MongoDB
 
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 5. Student Presentation - Pentaho Data Integration (Kettle)
 
DMDW 7. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 7. Student Presentation - Pentaho Data Integration (Kettle)DMDW 7. Student Presentation - Pentaho Data Integration (Kettle)
DMDW 7. Student Presentation - Pentaho Data Integration (Kettle)
 
DMDW 9. Student Presentation - Java to MySQL
DMDW 9. Student Presentation - Java to MySQLDMDW 9. Student Presentation - Java to MySQL
DMDW 9. Student Presentation - Java to MySQL
 
DMDW 11. Student Presentation - JAVA to MongoDB
DMDW 11. Student Presentation - JAVA to MongoDBDMDW 11. Student Presentation - JAVA to MongoDB
DMDW 11. Student Presentation - JAVA to MongoDB
 

2012-05-10 - UG Karlsruhe: NoSQL in .NET - mit Redis und MongoDB

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15. SET note1:title "Mittag" › SET note1:message "nicht vergessen" › KEYS note1:* › GET note1:title › DEL note1:title note1:message
  • 16.
  • 17.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63. – › use WebNote › db.Notes.save( { Title: 'Mittag', Message: 'nicht vergessen‘ } ); › db.Notes.save
  • 64. – › db.Notes.find(); › db.Notes.find({ Title: /Test/i }); › db.Notes.find( { "Categories.Color": "red"}).limit(1);
  • 65. – › db.Notes.update({Title: 'Test'}, {'$set': {Categories: []}}); › db.Notes.update({Title: 'Test'}, {'$push': { Categories: {Color: 'Red'} } });
  • 66. – › db.dropDatabase(); › db.Notes.drop(); › db.Notes.remove();
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73. NULL NULL NULL NULL NULL
  • 74. > 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 } } )
  • 75.
  • 76. 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" } ] }
  • 77.
  • 78. 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 } );
  • 79.
  • 80. // Jedes Produkt verlinkt die IDs der Kategorien products: { _id: 10, name: "Destination Moon", category_ids: [ 20, 30 ] }
  • 81. // 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 ] }
  • 82. // 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 } )
  • 83.
  • 84. // 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"}
  • 85. // 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 } )
  • 86. // 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}})
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.  ›  › › ›
  • 102.
  • 103. CODASYL model SQL Agile becoming more Google MongoDB initial published invented popular BigTable release IBM’s Oracle Brewer’s Amazon IMS INGRES founded CAP born Dynamo 1966 1969 1970 1973 1974 1977 1985 1990’s 2000 2004 2007 2008 2009 10gen NoSQL Codd publishes Term “object-oriented founded Movement relational model paper database” appears in 1970 Apache Cassandra initial release