2

mongo gemを使用するrubyでは、GridFを使用してファイル名を検索する方法に関するドキュメントが見つかりません。

4

1 に答える 1

7

最初にデータベースへの接続を取得します。これをこれと呼びますdb。次に、Mongo::GridまたはMongo::GridFileSystemインスタンスとしてGridFSに接続できます。

fs = Mongo::Grid.new(db)
fs = Mongo::GridFileSystem.new(db)

これで、でMongo :: GridExt::InstanceMethodsメソッドを使用できますfs。特に、あなたは使用することができますexist?

f = fs.exist? :filename => 'pancakes.png'

このexist?メソッドは、何かが見つかった場合はハッシュを、見つからなかった場合はハッシュを提供するため、名前が適切nilではありません。

たとえば、に一致するすべてのファイル名を検索する場合、これはそれほど有用ではありません/pancakes/。ただし、GridFSは通常のMongoDBコレクションのペアにすぎません。

  • fs.files:ファイルのメタデータ。
  • fs.chunks:ファイルデータ(チャンク単位)。

任意のメタデータ検索を実行したい場合は、実際に手に入れて、それを実行する必要がありfs.filesます。

fs     = db['fs.files']
cursor = fs.find(:filename => /pancakes/)
# Now iterate through cursor or .count it or ...

上記fsMongo::Collectionになるため、そのfindメソッドは通常のクエリオプションをすべて受け入れます。

于 2012-03-13T07:45:26.000 に答える