SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
Symfony2から
Doctrine MongoDB ODMを
使ってみる



                  2011-1-15
             Symfony2勉強会
         岩崎 晃司(@madapaja)
自己紹介

 名前        : 岩崎晃司
 誕生日       : 1981/11/6 (ぎりぎり20代)
 twitter   : @madapaja
 blog      : http://d.hatena.ne.jp/ja9/

仕事では主にPHPを使ってます。
SymfonyもMongoDBも、初心者ですが、、、
Symfony2から
Doctrine MongoDB ODMを
使ってみる
MongoDB

   ドキュメント指向データベースに属する
    DBです。
   詳細は割愛します。
Doctrine MongoDB ODM

 ODM=Object Document Mapper
 Doctrine2のMongoDB版みたいなもの
  です
 Symfony2でサポートされています

 Sandboxをダウンロードすると、もれなく
  ついてきます
環境を用意する

 Symfony2が動く環境を用意します
 Symfony2のSandboxを用意します

 MongoDBが必要です

 PHP Mongo Extensionが必要です
     sudo pecl install mongo でインストール
     php.ini に extension=mongo.so を追記
     httpdなどの再起動が必要かもね
使い方

Doctrine2 ORM とほぼ同じように使えるよ

1.   Doctrine MongoDB Bundleを有効に
2.   configに設定を追加
3.   Document(ORMでいうEntity)クラスを
     作る
4.   Let's access!
1.Doctrine MongoDB Bundleを有効に

     Sandboxのapp/AppKernel.php
class AppKernel extends Kernel
{
             :
  public function registerBundles()
  {
    $bundles = array(
            :
      // enable third-party bundles
            :
       new Symfony¥Bundle¥DoctrineMongoDBBundle¥
           DoctrineMongoDBBundle(),
      // ↑コメントアウトを解除し、有効に
            :
2. configに設定を追加
   app/config/config.yml
       最小限の設定
## MongoDB ODMの設定を追記。
doctrine_odm.mongodb:
    mappings:
        HelloBundle: ~

               MongoDB ODM を
               使用するバンドル名
2. configに設定を追加
   app/config/config.yml
       最小限の設定
## MongoDB ODMの設定を追記。
doctrine_odm.mongodb:
    mappings:
        HelloBundle: ~

            MongoDB ODM を
            使用するバンドル名
最小限の設定の場合、mongodb://localhost:27017の
defaultデータベースに接続するよ
2. configに設定を追加
   app/config/config.yml
       間違いが起きないように、
        最低限以下のような設定をした方が
        いいと思います。
## MongoDB ODMの設定を追記。
doctrine_odm.mongodb:
    mappings:
        HelloBundle: ~
    server: mongodb://localhost:27017
    default_database: my_db_name
3.Documentクラスを作る
   HelloBundle/Document/User.php
       Annotationは@mongodb: で始める
namespace Application¥HelloBundle¥Document;
/** @mongodb:Document(collection="users") */
class User {
    /** @mongodb:Id */
    protected $id;

     /** @mongodb:Date */
     protected $create_at;

     /** @mongodb:String */
     protected $name;

     // getter & Setter … …
}
3.Documentクラスを作る
    ちょっとした事。
        いつでも@mongodb:
/**
 * @mongodb:Indexes({
 *   @mongodb:Index(keys={"name"="asc"})
 * })
 */        油断して忘れない


        間違って、@mongodb:Timestamp を利用しない
     /** @mongodb:Date */
     protected $at;
                    普通の日時保存にはDate型を使う
4. Let's access!
     HelloBundle/Controller/HelloController.php
         落ち着いて、DocumentManagerを取得したら

// MongoDB ODM DocumentManager を取得
$dm = $this
  ->get('doctrine.odm.mongodb.document_manager');
4. Let's access!
     HelloBundle/Controller/HelloController.php
         煮るなり、焼くなりご自由に!

// 1.保存
// Userドキュメントを生成し、データを入れる
$user = new
    Application¥SasayakiBundle¥Document¥User();
$user->setName('madapaja');

$dm->persist($user); // データを入れて
$dm->flush(); // 保存
4. Let's access!
     HelloBundle/Controller/HelloController.php
         煮るなり、焼くなりご自由に!

// 2.取得
$sasayaki = $dm
    ->getRepository(
         ‘Application¥SasayakiBundle
          ¥Document¥User')
    ->findByName("madapaja")
    ->getResults();
4. Let's access!
     HelloBundle/Controller/HelloController.php
         煮るなり、焼くなりご自由に!
// 3.更新
$sasayaki = $dm
    ->createQuery(
         'Application¥SasayakiBundle
          ¥Document¥User')
    ->findAndModify()
    ->field('name')->equals('madapaja')
    // 更新します
    ->update()
    ->field('name')->set('まだぱじゃ')
    ->execute();
Annotationで設定したIndexの作成

   ID以外をインデックスされるように、
    @mongodb:Index アノテーションなどを
    指定している場合、
// Indexを作成
$dm->getSchemaManager()
    ->ensureIndexes();

    などとして、Indexを作りましょう。
最後に

 MongoDBの開発は非常に活発です。
 Shardingやレプリケーション、耐障害性
  などの向上、機能追加も予定(ver.1.7系、
  1.8~)されているようで、より運用しやす
  いプロダクトに成長し、使える幅が広が
  るのではないかと期待しています。
 面白い情報などありましたら、twitterなど
  で教えてください!
 MongoDB楽しい!
宣伝
     アジア初となるMongoDBのカンファレンス
          Mongo Tokyo
            が開催されます!

         3月1日(火) 13:00~19:30
        品川シーサイド楽天タワーにて

開発元である10genのエンジニアを含む講演が行われます。

                  詳細は:
     http://mongodb.jp/ からリンクしてます
ありがとうございました!

Contenu connexe

Tendances

脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
Hidekazu Ishikawa
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門
Hiroaki Murayama
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能
hitode909
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきました
Kiwamu Okabe
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
jamadam
 

Tendances (20)

脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
Elixirだ 第2回
Elixirだ 第2回Elixirだ 第2回
Elixirだ 第2回
 
Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半Elixirだ 第1回強化版 前半
Elixirだ 第1回強化版 前半
 
第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村第1回鹿児島node.jsの会資料_内村
第1回鹿児島node.jsの会資料_内村
 
Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -Elixirだ 第1回 - 基礎だ -
Elixirだ 第1回 - 基礎だ -
 
Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半Elixirだ 第1回強化版 後半
Elixirだ 第1回強化版 後半
 
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyotoGo言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
Go言語入門者が Webアプリケーション を作ってみた話 #devfest #gdgkyoto
 
Go言語のスライスを理解しよう
Go言語のスライスを理解しようGo言語のスライスを理解しよう
Go言語のスライスを理解しよう
 
知って得する標準関数の使い方
知って得する標準関数の使い方知って得する標準関数の使い方
知って得する標準関数の使い方
 
DebianとWordPressでハッピーになろう!
DebianとWordPressでハッピーになろう!DebianとWordPressでハッピーになろう!
DebianとWordPressでハッピーになろう!
 
WebAPIではじめるphp入門
WebAPIではじめるphp入門WebAPIではじめるphp入門
WebAPIではじめるphp入門
 
Python/Bottle for Kubo Semi 2014
Python/Bottle for Kubo Semi 2014Python/Bottle for Kubo Semi 2014
Python/Bottle for Kubo Semi 2014
 
サーバを作ってみた (2)
サーバを作ってみた (2)サーバを作ってみた (2)
サーバを作ってみた (2)
 
Perlで伝統芸能
Perlで伝統芸能Perlで伝統芸能
Perlで伝統芸能
 
C83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきましたC83 λカ娘の販促にやってきました
C83 λカ娘の販促にやってきました
 
Perl勉強会#2資料
Perl勉強会#2資料Perl勉強会#2資料
Perl勉強会#2資料
 
オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門オープンソースソフトウェア検索サーバ Solr入門
オープンソースソフトウェア検索サーバ Solr入門
 
Webスライスから始めるmicroformats
Webスライスから始めるmicroformatsWebスライスから始めるmicroformats
Webスライスから始めるmicroformats
 
Mongo db使ってみよう
Mongo db使ってみようMongo db使ってみよう
Mongo db使ってみよう
 
Mojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてるMojoliciousをウェブ制作現場で使ってみてる
Mojoliciousをウェブ制作現場で使ってみてる
 

En vedette

最重要的業務員
最重要的業務員最重要的業務員
最重要的業務員
shiehrm
 
Ctrmc answers to osha nprm questions 7 10 final
Ctrmc answers to osha nprm questions 7 10 finalCtrmc answers to osha nprm questions 7 10 final
Ctrmc answers to osha nprm questions 7 10 final
Daddy DeVinney
 
Creating a college support team
Creating a college support teamCreating a college support team
Creating a college support team
Atty Garfinkel
 
My lx business_executive_program_v4
My lx business_executive_program_v4My lx business_executive_program_v4
My lx business_executive_program_v4
alayonruth
 

En vedette (20)

Gitのおさらい
GitのおさらいGitのおさらい
Gitのおさらい
 
Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法Symfony2でMongoDBと仲良くする方法
Symfony2でMongoDBと仲良くする方法
 
20110514 mongo dbチューニング
20110514 mongo dbチューニング20110514 mongo dbチューニング
20110514 mongo dbチューニング
 
Business plan presentation_format (1)
Business plan presentation_format (1)Business plan presentation_format (1)
Business plan presentation_format (1)
 
Pdf radar1
Pdf radar1Pdf radar1
Pdf radar1
 
Double page Process
Double page ProcessDouble page Process
Double page Process
 
最重要的業務員
最重要的業務員最重要的業務員
最重要的業務員
 
Laurian Victor on , "The Impact of Facebook Usage on SAUT Youth Moral Behavior"
Laurian Victor on , "The Impact of Facebook Usage on SAUT Youth Moral Behavior"Laurian Victor on , "The Impact of Facebook Usage on SAUT Youth Moral Behavior"
Laurian Victor on , "The Impact of Facebook Usage on SAUT Youth Moral Behavior"
 
Ctrmc answers to osha nprm questions 7 10 final
Ctrmc answers to osha nprm questions 7 10 finalCtrmc answers to osha nprm questions 7 10 final
Ctrmc answers to osha nprm questions 7 10 final
 
Creating a college support team
Creating a college support teamCreating a college support team
Creating a college support team
 
Presentation1
Presentation1Presentation1
Presentation1
 
Gr
GrGr
Gr
 
Rad u predstavničkom tijelu jl(r)s
Rad u predstavničkom tijelu jl(r)sRad u predstavničkom tijelu jl(r)s
Rad u predstavničkom tijelu jl(r)s
 
Olgu
OlguOlgu
Olgu
 
Worksheet sem.2 part 1
Worksheet sem.2   part 1Worksheet sem.2   part 1
Worksheet sem.2 part 1
 
Audience Research
Audience ResearchAudience Research
Audience Research
 
Question 5
Question 5Question 5
Question 5
 
My lx business_executive_program_v4
My lx business_executive_program_v4My lx business_executive_program_v4
My lx business_executive_program_v4
 
Cipaganti [ whats next ] Focus or Diversify?
Cipaganti [ whats next ] Focus or Diversify?Cipaganti [ whats next ] Focus or Diversify?
Cipaganti [ whats next ] Focus or Diversify?
 
Fairtrade quiz
Fairtrade quizFairtrade quiz
Fairtrade quiz
 

Similaire à Symfony2からdoctrine mongo db odmを使ってみる

13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
Takayoshi Tanaka
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
Hironao Sekine
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
toshihirock
 

Similaire à Symfony2からdoctrine mongo db odmを使ってみる (20)

Symfony2#5 LT
Symfony2#5 LTSymfony2#5 LT
Symfony2#5 LT
 
シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016シラサギハンズオン 1015 1016
シラサギハンズオン 1015 1016
 
CocoaPodsのはなし
CocoaPodsのはなしCocoaPodsのはなし
CocoaPodsのはなし
 
Newcomer2020 Docker研修
Newcomer2020 Docker研修Newcomer2020 Docker研修
Newcomer2020 Docker研修
 
Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!Appsody でnodejsのアプリを立ち上げよう!
Appsody でnodejsのアプリを立ち上げよう!
 
2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig2005 07 30_xwj_customizinig
2005 07 30_xwj_customizinig
 
Mongodb
MongodbMongodb
Mongodb
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
Clang Modules
Clang ModulesClang Modules
Clang Modules
 
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツールPyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
PyCon JP 2012 hands-on セッション/ FlaskによるWebアプリケーションの実装とプログラミングツール
 
13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs13016 n分で作るtype scriptでnodejs
13016 n分で作るtype scriptでnodejs
 
Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発Sflt17 meteorではじめる最速ウェブアプリ開発
Sflt17 meteorではじめる最速ウェブアプリ開発
 
20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!20140612_Docker上でCloudStackを動かしてみる!!
20140612_Docker上でCloudStackを動かしてみる!!
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
Building production server on docker
Building production server on dockerBuilding production server on docker
Building production server on docker
 
シラサギハンズオン 東京
シラサギハンズオン 東京シラサギハンズオン 東京
シラサギハンズオン 東京
 
S2s websrv201011-presen
S2s websrv201011-presenS2s websrv201011-presen
S2s websrv201011-presen
 
DockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみようDockerでWordPressサイトを開発してみよう
DockerでWordPressサイトを開発してみよう
 
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみたFuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
FuelPHPのscaffoldで作成した画面をdotcloudにデプロイしてみた
 
git 初めの一歩
git 初めの一歩git 初めの一歩
git 初めの一歩
 

Dernier

Dernier (10)

論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 

Symfony2からdoctrine mongo db odmを使ってみる

  • 1. Symfony2から Doctrine MongoDB ODMを 使ってみる 2011-1-15 Symfony2勉強会 岩崎 晃司(@madapaja)
  • 2. 自己紹介  名前 : 岩崎晃司  誕生日 : 1981/11/6 (ぎりぎり20代)  twitter : @madapaja  blog : http://d.hatena.ne.jp/ja9/ 仕事では主にPHPを使ってます。 SymfonyもMongoDBも、初心者ですが、、、
  • 4. MongoDB  ドキュメント指向データベースに属する DBです。  詳細は割愛します。
  • 5. Doctrine MongoDB ODM  ODM=Object Document Mapper  Doctrine2のMongoDB版みたいなもの です  Symfony2でサポートされています  Sandboxをダウンロードすると、もれなく ついてきます
  • 6. 環境を用意する  Symfony2が動く環境を用意します  Symfony2のSandboxを用意します  MongoDBが必要です  PHP Mongo Extensionが必要です  sudo pecl install mongo でインストール  php.ini に extension=mongo.so を追記  httpdなどの再起動が必要かもね
  • 7. 使い方 Doctrine2 ORM とほぼ同じように使えるよ 1. Doctrine MongoDB Bundleを有効に 2. configに設定を追加 3. Document(ORMでいうEntity)クラスを 作る 4. Let's access!
  • 8. 1.Doctrine MongoDB Bundleを有効に  Sandboxのapp/AppKernel.php class AppKernel extends Kernel { : public function registerBundles() { $bundles = array( : // enable third-party bundles : new Symfony¥Bundle¥DoctrineMongoDBBundle¥ DoctrineMongoDBBundle(), // ↑コメントアウトを解除し、有効に :
  • 9. 2. configに設定を追加  app/config/config.yml  最小限の設定 ## MongoDB ODMの設定を追記。 doctrine_odm.mongodb: mappings: HelloBundle: ~ MongoDB ODM を 使用するバンドル名
  • 10. 2. configに設定を追加  app/config/config.yml  最小限の設定 ## MongoDB ODMの設定を追記。 doctrine_odm.mongodb: mappings: HelloBundle: ~ MongoDB ODM を 使用するバンドル名 最小限の設定の場合、mongodb://localhost:27017の defaultデータベースに接続するよ
  • 11. 2. configに設定を追加  app/config/config.yml  間違いが起きないように、 最低限以下のような設定をした方が いいと思います。 ## MongoDB ODMの設定を追記。 doctrine_odm.mongodb: mappings: HelloBundle: ~ server: mongodb://localhost:27017 default_database: my_db_name
  • 12. 3.Documentクラスを作る  HelloBundle/Document/User.php  Annotationは@mongodb: で始める namespace Application¥HelloBundle¥Document; /** @mongodb:Document(collection="users") */ class User { /** @mongodb:Id */ protected $id; /** @mongodb:Date */ protected $create_at; /** @mongodb:String */ protected $name; // getter & Setter … … }
  • 13. 3.Documentクラスを作る  ちょっとした事。  いつでも@mongodb: /** * @mongodb:Indexes({ * @mongodb:Index(keys={"name"="asc"}) * }) */ 油断して忘れない  間違って、@mongodb:Timestamp を利用しない /** @mongodb:Date */ protected $at; 普通の日時保存にはDate型を使う
  • 14. 4. Let's access!  HelloBundle/Controller/HelloController.php  落ち着いて、DocumentManagerを取得したら // MongoDB ODM DocumentManager を取得 $dm = $this ->get('doctrine.odm.mongodb.document_manager');
  • 15. 4. Let's access!  HelloBundle/Controller/HelloController.php  煮るなり、焼くなりご自由に! // 1.保存 // Userドキュメントを生成し、データを入れる $user = new Application¥SasayakiBundle¥Document¥User(); $user->setName('madapaja'); $dm->persist($user); // データを入れて $dm->flush(); // 保存
  • 16. 4. Let's access!  HelloBundle/Controller/HelloController.php  煮るなり、焼くなりご自由に! // 2.取得 $sasayaki = $dm ->getRepository( ‘Application¥SasayakiBundle ¥Document¥User') ->findByName("madapaja") ->getResults();
  • 17. 4. Let's access!  HelloBundle/Controller/HelloController.php  煮るなり、焼くなりご自由に! // 3.更新 $sasayaki = $dm ->createQuery( 'Application¥SasayakiBundle ¥Document¥User') ->findAndModify() ->field('name')->equals('madapaja') // 更新します ->update() ->field('name')->set('まだぱじゃ') ->execute();
  • 18. Annotationで設定したIndexの作成  ID以外をインデックスされるように、 @mongodb:Index アノテーションなどを 指定している場合、 // Indexを作成 $dm->getSchemaManager() ->ensureIndexes(); などとして、Indexを作りましょう。
  • 19. 最後に  MongoDBの開発は非常に活発です。  Shardingやレプリケーション、耐障害性 などの向上、機能追加も予定(ver.1.7系、 1.8~)されているようで、より運用しやす いプロダクトに成長し、使える幅が広が るのではないかと期待しています。  面白い情報などありましたら、twitterなど で教えてください!  MongoDB楽しい!
  • 20. 宣伝 アジア初となるMongoDBのカンファレンス Mongo Tokyo が開催されます! 3月1日(火) 13:00~19:30 品川シーサイド楽天タワーにて 開発元である10genのエンジニアを含む講演が行われます。 詳細は: http://mongodb.jp/ からリンクしてます