GridFS クラス群目次
 MongoGridFS クラスはじめにデータベースにファイルを格納したり、データベースからファイルを取得したりするためのユーティリティです。 GridFS はストレージの仕様で、すべてのドライバがこれを実装しています。 基本的に、これはふたつのコレクションを定義しています。 ファイルのメタデータ用の files、 そしてファイルの中身用の chunks です。 大きなファイルの場合は自動的に小さなチャンクに分割し、 各チャンクが chunks コレクションのドキュメントとして保存されます。 files コレクション内の各ドキュメントには、ファイル名とアップロードした日付、 そして md5 ハッシュが含まれています。 また、一意な _id フィールドも持っており、 これを使ってそのファイルの中身がある chunks コレクションを探すことができます。 chunks コレクション内の各ドキュメントには、バイナリデータのチャンクの他に そのファイルの _id フィールドにマッチする files_id フィールドが含まれ、さらに ファイル全体の中でそのチャンクがどの位置にあるのかという情報も含まれます。 files ドキュメントの内容は、たとえばこのようになります。 
<?php
<?php言語間の互換性MongoGridFS で作ったファイルは他のどのドライバでも使えなければなりませんし、 逆もまたそうです。しかし中には、ファイルに関連するすべてのメタデータが "metadata" フィールドにあるという前提で動くドライバもあります。 他の言語を使う可能性があるのなら、見せたい情報を "metadata" フィールドに入れておくといいでしょう。たとえば、 
<?phpこう書くかわりに、下のようにするのです。 
<?phpMongoGridFS ファミリーMongoGridFS は files コレクションと chunks コレクションを表します。MongoGridFS は MongoCollection を継承しており、MongoGridFS のインスタンスは MongoCollection のすべてのメソッドにアクセスできます。 これは files コレクションに対する操作となります。 
<?phpメタデータを操作する別の例を示します。 
<?phpMongoGridFS のインスタンスから、 chunks コレクションにアクセスすることもできます。 
<?phpMongoGridFS のメソッドの中には MongoCollection のメソッドと同じ名前のものもあります。 これらのメソッドの挙動は微妙に異なります。 たとえば MongoGridFS::remove は、条件にマッチするすべてのオブジェクトを files コレクションから削除し、 対応する chunks コレクションの中身も同時に削除します。 新しい何かを GridFS に格納する際にはいくつかのオプションがあります。 ファイル名がわかる場合は、次のように書くことができます。 
<?phpファイルではない文字列やバイト列の場合は、 MongoGridFS::storeBytes を使うこともできます。 
<?phpMongoGridFS コレクションへの問い合わせ結果として返されるのは MongoGridFSCursor です。これは通常の MongoCursor とほぼ同様の動きをしますが、連想配列ではなく MongoGridFSFiles を返すという点が異なります。 MongoGridFSFiles をディスクに書き出すには MongoGridFSFile::write を、メモリに取り込むには MongoGridFSFile::getBytes を使います。 自動的にチャンクをつなげるメソッドは今のところありませんが、 $grid->chunks コレクションに問い合わせて自分でつなげるのはきわめて簡単です。 MongoGridFSFile オブジェクトには、 ファイルのメタデータを格納する file フィールドが含まれます。 クラス概要MongoGridFS 
    
     
      extends
       class MongoCollection
     
     { 
    
    /* フィールド */ 
    
     public
     MongoCollection
     $chunks
      =  
    null
    ;
     protected
     string
     $filesName
      =  
    null
    ;
     protected
     string
     $chunksName
      =  
    null
    ;/* メソッド */ 
    
   public  __construct
    ( MongoDB  
$db
   [, string $prefix = "fs"
   [, mixed $chunks = "fs"
  ]] )
   public boolarray delete
    ( mixed  
$id
   )
   public array drop
    ( void
   ) 
   public MongoGridFSCursor find
    ([ array  
$query = array()
   [, array $fields = array()
  ]] )
   public MongoGridFSFile findOne
    ([ mixed  
$query = array()
   [, mixed $fields = array()
  ]] )
   public MongoGridFSFile get
    ( mixed  
$id
   )
   public mixed put
    ( string  
$filename
   [, array $metadata = array()
   [, array $options = array()
  ]] )
   public boolarray remove
    ([ array  
$criteria = array()
   [, array $options = array()
  ]] )
   public mixed storeBytes
    ( string  
$bytes
   [, array $metadata = array()
   [, array $options = array()
  ]] )
   public mixed storeFile
    ( stringresource  
$filename
   [, array $metadata = array()
   [, array $options = array()
  ]] )
   public mixed storeUpload
    ( string  
   }$name
   [, array $metadata
  ] )参考
 MongoGridFSFile クラスはじめにデータベースファイルオブジェクト。 クラス概要MongoGridFSFile 
    
     
       class MongoGridFSFile
     
     { 
    /* フィールド */ 
    
     public
     array
     $file
      =  
    null
    ;
     protected
     MongoGridFS
     $gridfs
      =  
    null
    ;/* メソッド */ 
    
   public  MongoGridfsFile::__construct
    ( MongoGridFS  
$gridfs
   , array $file
   )
   public string getBytes
    ( void
   ) 
   public string getFilename
    ( void
   ) 
   public resource getResource
    ( void
   ) 
   public int getSize
    ( void
   ) 
   public int write
    ([ string  
   }$filename = null
  ] )MongoGridFSCursor クラスはじめにデータベースからのファイル用のカーソルです。 クラス概要MongoGridFSCursor 
    
     
      extends
       class MongoCursor
     
     { 
    
    /* フィールド */ 
    
     protected
     MongoGridFS
     $gridfs
      =  
    null
    ;/* メソッド */ 
    
   public  __construct
    ( MongoGridFS  
$gridfs
   , resource $connection
   , string $ns
   , array $query
   , array $fields
   )
   public MongoGridFSFile current
    ( void
   ) 
   public MongoGridFSFile getNext
    ( void
   ) 
   public string key
    ( void
   ) 
   } |