› 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}})
›
›
›››
›››
››
›
›
›
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