mongoid

Post on 18-May-2015

529 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

une simp

TRANSCRIPT

Mongoid

Mongoid

Cyril Mougel

17 Janvier 2013

Mongoid

Mongoid c’est ?

1 Mongoid c’est ?

2 Mais MongoDB ?

3 Mongoid c’est aussi ?

Mongoid

Mongoid c’est ?

Qu’est ce que Mongoid ?

Un ODM Object Document Model

Ecrit en Ruby

API comme ActiveRecord

Mongoid

Mongoid c’est ?

Exemple simple

class User

include Mongoid :: Document

end

Mongoid

Mongoid c’est ?

Resultat

> user = User.new

=> #<User _id: 50 f07c2444fd9947a7000001 , _type:

nil >

Mongoid

Mongoid c’est ?

Definition des champs

Mongoid

Mongoid c’est ?

class User

include Mongoid :: Document

field :first_name

field :last_name

end

Mongoid

Mongoid c’est ?

> user = User.new(: first_name => 123, :last_name

=> "Mougel")

=> #<User _id: 50 f07c4c44fd9947a7000003 , _type:

nil , first_name: 123, last_name: "Mougel">

> user.first_name

=> 123

> user.last_name

=> "Mougel"

Mongoid

Mongoid c’est ?

Gestion de la Coercion

Mongoid

Mongoid c’est ?

class User

include Mongoid :: Document

field :first_name , :type => String

field :last_name , :type => String

end

Mongoid

Mongoid c’est ?

> user = User.new(: first_name => 123, :last_name

=> true)

=> #<User _id: 50 f07c4c44fd9947a7000003 , _type:

nil , first_name: "123", last_name: "true">

> user.first_name

=> "123"

> user.last_name

=> "true"

Mongoid

Mongoid c’est ?

Gestion d’un valeur par defaut

Mongoid

Mongoid c’est ?

class User

include Mongoid :: Document

field :first_name , :type => String

field :last_name , :type => String

field :location , :type => String ,

:default => "Nantes"

end

Mongoid

Mongoid c’est ?

> user = User.new

=> #<User _id: 50 f07cbc44fd9947a7000004 , _type:

nil , first_name: nil , last_name: nil ,

location: "Nantes">

> user.first_name

=> nil

> user.location

=> "Nantes"

Mongoid

Mongoid c’est ?

Multiple Type de base

Mongoid

Mongoid c’est ?

BigDecimal

Boolean

Integer

String

Symbol

Float

Date

DateTime

Time

Array

Hash

Mongoid

Mais MongoDB?

1 Mongoid c’est ?

2 Mais MongoDB ?

3 Mongoid c’est aussi ?

Mongoid

Mais MongoDB?

Base NoSQLNoSQL == Not Only SQL

Mongoid

Mais MongoDB?

Base de donnee orientedocument

stockage sous format BSON

BSON == Binary JSON

Mongoid

Mais MongoDB?

Base de donnee orientedocument

Creation automatique du schema

Pas d’obligation d’homogeneite des documents

Mongoid

Mais MongoDB?

Pas de jointure

Mongoid

Mais MongoDB?

Query Operator

$in

$nin

$or

$gt

$lt

etc..

Mongoid

Mongoid c’est aussi ?

1 Mongoid c’est ?

2 Mais MongoDB ?

3 Mongoid c’est aussi ?

Mongoid

Mongoid c’est aussi ?

Include ActiveModel

Gestion des erreurs

Gestion des callbacks

Mongoid

Mongoid c’est aussi ?

Gestion des associations

Mongoid

Mongoid c’est aussi ?

Association entre collection

has many :orders

belongs to :user

Mongoid

Mongoid c’est aussi ?

class User

include Mongoid :: Document

has_many :posts

end

class Post

include Mongoid :: Document

belongs_to :user

end

Mongoid

Mongoid c’est aussi ?

> user = User.new

> user.posts = [ Post.new ]

> user.save

> user

=> #<User _id: 50 f07c2444fd9947a7000001 , _type:

nil >

> user.posts

=> [#<Post _id: 50 f07c2444fd9947a7000002 , _type:

nil >]

Mongoid

Mongoid c’est aussi ?

Association des documentsembarques

embeds many :comments

embedded in :post

Mongoid

Mongoid c’est aussi ?

class Post

include Mongoid :: Document

embeds_many :comments

end

class Comment

include Mongoid :: Document

embedded_in :post

end

Mongoid

Mongoid c’est aussi ?

> user = User.new

> user.comments = [ Comment.new ]

> user.save

> user

=> #<User _id: 50 f07c2444fd9947a7000001 , _type:

nil >

{

’_id’: 50 f07c2444fd9947a7000001 ,

’comments ’: [{

’_id’: 50 f07c2444fd9947a7000002

}]

}

Mongoid

Mongoid c’est aussi ?

Criteria

Model.where

Model.all in

Model.any in

Model.any of

Model.asc

Model.desc

Model.limit

Model.only

Mongoid

Mongoid c’est aussi ?

Les criterias sont chainable

Mongoid

Mongoid c’est aussi ?

Les criterias sont evalues demaniere lazy

Mongoid

Mongoid c’est aussi ?

Finder

Model.all

Model.first

Model.last

Model.exists ?

Model.find

Mongoid

Mongoid c’est aussi ?

MopedMongoDB driver developpe par la communaute Mongoid

Gestion plus threadsafe par session

Mongoid

Mongoid c’est aussi ?

Plus d’information ?RTFM

http ://mongoid.org

top related