Perl::mongoDBにPerlから接続してみた話

取り敢えずmongoDBをさわっておきたかったので
最低限のことやりましたメモ。


-- CentOS 5.7 (64bit)
-- mongoDB 1.6.4 (64bit)
-- MongoDB(Perl) 0.45

[参考]
MongoDBはじめてみました

ありがとうございます。ほぼそのまま実行しています。

インストールとか


$ curl http://downloads.mongodb.org/linux/mongodb-linux-x86_64-1.6.4.tgz > mongo.tgz
$ tar xzf mongo.tgz
$ mv -i mongodb-linux-x86_64-1.6.4 mongodb
$ sudo mv -i mongodb /usr/local/
$ ls -ld /usr/local/mongodb

取り敢えず扱いやすいように /usr/local/mongodb/bin/ にパスは通しました。


$ curl http://ewanleith.com/downloads/mongodb.txt
$ sudo mv -i mongodb.txt /etc/init.d/mongodb
$ sudo chmod +x /etc/init.d/mongodb
$ ls -la /etc/init.d/mongodb

こいつのパスはさっきの /usr/local/mongodb/ になっているので
よしなに環境合わせてください。


$ /etc/init.d/mongodb start
$ ps auxwww | grep mongo
$ netstat -ltunp

とかで 27017 と 28017 でLISTENしていればデーモン起動OK。
繋ぎに行きます。


$ /usr/local/mongodb/bin/mongo
MongoDB shell version: 1.6.4
connecting to: test
>

こんな感じでつながります。


> show dbs
admin
local
test

「show dbs = SHOW DATABASES」みたいな感じでが存在するデータベースが見れます。
データベースに入るのは use でいけます。


> use test
switched to db test

ということでmongoDBには繋がるので、適当にコレクションを追加するコード書きます。
コレクション=テーブルみたいな感じらしいです。

Perlでinsertしてfindしてみる

利用したモジュールはオフィシャルご指定のMongoDB使いました。
printが苦手なのでsay使ってます。すいません。


#!/usr/bin/env perl

use strict;
use warnings;
use MongoDB;

use 5.010;

my $con = MongoDB::Connection->new( host => 'localhost', port => '27017');
my $db = $con->test;
my $col = $db->coll;

my $nameis = undef;
my $select = undef;

my @name = qw(mike ken rock);

for $nameis (@name) {
$col->insert({ 'name' => $nameis });
$select = $col->find_one({ 'name' => $nameis });
say "My name is $select->{'name'}.";
}

exit 0;

まさに初級レベルのコードでよく晒せるよな恥ずかしくないのねえ?
という感じですが、自分メモなので。

    DB : test

Collection : coll <- さくせいしたコレクション