Slide 1

Slide 1 text

MONGODB 101 Wprowadzenie do dokumentowej bazy danych PHPers.02 15 lipca 2013 Leszek Krupiński @leafnode Monday, July 15, 13

Slide 2

Slide 2 text

PODSTAWY NoSQL i dokumentowe bazy danych Monday, July 15, 13

Slide 3

Slide 3 text

MONGODB Baza dokumentowa, object store Monday, July 15, 13

Slide 4

Slide 4 text

REPLIKACJA I SHARDING OOTB Monday, July 15, 13

Slide 5

Slide 5 text

GEOSPATIAL INDEX Monday, July 15, 13

Slide 6

Slide 6 text

JSON BSON { _id : ObjectId("51d66af57d3afb7a973b00ab"), username : 'foo', firstName : 'Jan', lastName : 'Kowalski', address : { street : 'Marszałkowska 12', city : 'Warszawa', zip : '00-950' } friends : [ 'janek', 'mirek', 'wiesiek' ] } Monday, July 15, 13

Slide 7

Slide 7 text

ZAPYTANIA CRUD Monday, July 15, 13

Slide 8

Slide 8 text

FIND Monday, July 15, 13

Slide 9

Slide 9 text

INSERT Monday, July 15, 13

Slide 10

Slide 10 text

UPDATE 3 sposoby na update Monday, July 15, 13

Slide 11

Slide 11 text

REMOVE Monday, July 15, 13

Slide 12

Slide 12 text

PROJEKTOWANIE SCHEMATU Schemaless != Nie planuj Monday, July 15, 13

Slide 13

Slide 13 text

MODEL RELACYJNY Monday, July 15, 13

Slide 14

Slide 14 text

MODEL DOKUMENTOWY { _id : ObjectId("51d66af57d3afb7a973b00ab"), author : 'janek', title : 'Ciekawy post', body : 'Lorem Ipsum', date : ISODate("2012-12-19T20:10:56.920Z"), tags : [ 'lorem', 'testowe', 'z życia wzięte' ], comments : [ { author : 'Anonim', date : ISODate("2012-12-19T20:10:56.920Z"), body : 'Nuda!' }, { author : 'Zdzisiek', date : ISODate("2012-12-19T20:10:56.920Z"), body : 'Wcale nie nuda.' } ] } Monday, July 15, 13

Slide 15

Slide 15 text

GEOSPATIAL INDEX db.places.ensureIndex( { location: ‘2d’ } ) Monday, July 15, 13

Slide 16

Slide 16 text

db.places.find( { location: { $near: [ 52, 21 ] } } ) Monday, July 15, 13

Slide 17

Slide 17 text

MONGODB I PHP pecl install mongo Monday, July 15, 13

Slide 18

Slide 18 text

DEMO Monday, July 15, 13

Slide 19

Slide 19 text

DOCTRINE DEMO Monday, July 15, 13

Slide 20

Slide 20 text

NOTKA $qb = $dm->createQueryBuilder('Application_Model_Entry') ->field('club.$id')->equals(new MongoId($club->getId())); Monday, July 15, 13