2

私はいくつかのペット開発にperl、MongoDB、およびGridFSを使用してきましたが、疑問に思います-とにかく、perlがMongofilesとインターフェースするためのものはありますか(システムコマンドでそこに移動してそのように呼び出す以外に)-まあ..まあ。 ..cpan ライブラリ? または、Mongo 用の現在の CPAN モジュールの拡張ですか?

私がやりたいことの例:

ファイルを mongoDB に保存し、ファイルを mongoDB に取得できるようにしたいと考えています。たとえば、コマンド ラインから、mongofiles を含むディレクトリに移動したら、実行できます

mongofiles put "C:\Users\Me\cool.txt"

そして、ファイルをDBに保存します!ドライブからcool.txtを削除したとしましょう。今私が実行すると:

mongofiles get "C:\Users\Me\cool.txt"

DB からファイルを取得し、それを自分のディレクトリに配置します。Perl からこの mongofiles 機能にアクセスできるようにしたいだけです。たとえそれが私のスクリプトを含むディレクトリにmongofilesのコピーを持つことを意味するとしても。

4

2 に答える 2

5

GridFS を使用したい。

そのための perl API は次のとおりです: http://api.mongodb.org/perl/current/MongoDB/GridFS.html

挿入の例を次に示します。

use MongoDB::GridFS;

my $grid = $database->get_gridfs;
my $fh = IO::File->new("myfile", "r");
$grid->insert($fh, {"filename" => "mydbfile"});

そして取得:

use MongoDB::GridFS::File;

my $outfile = IO::File->new("outfile", "w");
my $file = $grid->find_one({"filename" => "mydbfile"});;
$file->print($outfile);
于 2012-06-21T19:52:07.353 に答える
1

フレデリックはこの答えの知識を私に提供してくれましたが、レガシーのために、ここに完全で実用的な例があります...他の場所のインターネットでは見つけることができないようなものです:

#!usr/bin/perl

use MongoDB::GridFS;
use MongoDB;
use MongoDB::Database;
use MongoDB::OID;

my $conn = new MongoDB::Connection;
my $db   = $conn->test; #name of our local db is test...default of mongoDB
my $grid = $db->get_gridfs;
my $fh = IO::File->new("cool.txt", "r");
$grid->insert($fh, {"filename" => "test"});
于 2012-06-21T20:04:54.633 に答える