2012年7月16日月曜日

MongoDBのインストールとPerlからの簡単な操作まで

■mongoインストール
http://www.mongodb.org/dr/fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.6.tgz/download
tar xvzf mongodb-linux-x86_64-2.0.6.tgz
mv mongodb-linux-x86_64-2.0.6 mongodb
mv mongodb /usr/local/
mkdir -p /data/db
cd /usr/bin/
ln -s /usr/local/mongodb/bin/mongod mongod
ln -s /usr/local/mongodb/bin/mongo mongo
mongod
(mongoDBのデーモンプロセスの起動、1Gのサイズのバイナリファイルを3つほど作成すれば起動完了)
(デーモンを起動したターミナルはそのままにしておく)
mongo
(実際にmongoDBにアクセスしてみる)
(アクセスや操作を行うとデーモンを起動したターミナルにログが出力される)
> db.test.save( { a: 1 } )
> db.test.find()
{ "_id" : ObjectId("4ffd62476fa58b6422ae9873"), "a" : 1 }
(タグを押すと実行できる命令の候補を順送りすることができる)
exit

・基本コマンド参考サイト
http://d.hatena.ne.jp/matsukaz/20110418/1303144042
(基本コマンドはこちらが参考になる)


■perlドライバから操作
(perlを事前にインストールしておくこと)
yum install -y ncftp
(cpanの初期設定で必要になり未インストールだったのでインストール)
perl -v
This is perl, v5.8.8 built for x86_64-linux-thread-multi
cpan
cpan > install Bundle::CPAN
(初期設定がある場合は基本的には全部enter)
(入力しなければいけにあのはftpサーバ、Asia Japan にしてすべてのftpサーバを選択する)
cpan > o conf prerequisites_policy follow
cpan > o conf commit
(この設定をするとyesと求められるところを全て無視することができます)
cpan > force install MongoDB
cpan > force install BSON
cpan > force install Entities::Backend::MongoDB
cpan > force install MojoX::Session::Store::MongoDB
cpan > force install MongoDB::Admin
cpan > force install Mongoose
cpan > force install MongoDBI
cpan > force install MongoX
cd
find `perl -e 'print "@INC"'` -name 'MongoDB.pm' -print
(以下が表示されることを確認する)
./.cpan/build/MongoDB-0.45/blib/lib/MongoDB.pm
./.cpan/build/MongoDB-0.45/lib/MongoDB.pm
emacs perl_to_mongo.pl
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use MongoDB;

my $connection = MongoDB::Connection->new( host => 'yoshi3', port => 27017 );
my $database   = $connection->mydb;
my $collection = $database->things;

my $id   = $collection->insert({ hoge => 'tokyo tyrant'});
my $data = $collection->find_one({ _id => $id });

print "$id\t$data->{hoge}\n";

exit 0;
perl perl_to_mongo.pl
(Can't locate object method "run_command" via package "MongoDB::Database"が出た場合はこちらを参照)
(mongoコマンドからデータがインサートされていることを確認する)

0 件のコメント:

コメントを投稿