インストール
公式サイトからプラットフォームに合ったものをダウンロード。解凍して任意のディレクトリに配置。
MongoDB サーバの起動
{MongoDB インストールディレクトリ}/bin/mongod で起動する。…が、以下のようなエラーが。
Sun Jan 08 22:23:56 [initandlisten] exception in initAndListen: 10296 dbpath (/data/db) does not exist, terminatingデータディレクトリ(デフォルトではルート直下の/data/db)が無いと言われているので、
ディレクトリを作成するか起動時のオプションでデータディレクトリを指定する必要がある。
{インストールディレクトリ}/data/db を作成し、
カレントディレクトリ {インストールディレクトリ}/bin/ から相対指定してみることにする。
mongod --dbpath=../data/db無事起動成功。
シェルから操作
起動してログイン
{インストールディレクトリ}/bin/mongo でシェルを起動する。以下のように表示されれば起動成功。デフォルトでは「test」DBに接続するようだ。
MongoDB shell version: 2.0.2 connecting to: test >
DB の変更
「zaneli」DB に変更する。> use zaneli switched to db zaneli現在のDBを確認する。
> db zaneli全てのDBを一覧表示する。
> show dbs local (empty) zaneli (empty)
データの登録・参照・削除
「coll1」コレクションにデータを登録。
> db.coll1.save({"name":"tarou","age":20})
> db.coll1.save({"name":"jirou","age":25})
「coll1」コレクション全件を取得する。
> db.coll1.find()
{ "_id" : ObjectId("4f099dfc477d5b936fee3946"), "name" : "tarou", "age" : 20 }
{ "_id" : ObjectId("4f099e02477d5b936fee3947"), "name" : "jirou", "age" : 25 }
「_id」フィールドは自動生成されるようだ。_id を除くフィールドを取得するには、
> db.coll1.find({}, {_id:0})
{ "name" : "tarou", "age" : 20 }
{ "name" : "jirou", "age" : 25 }
_id のみを取得するには、
> db.coll1.find({}, {_id:1})
{ "_id" : ObjectId("4f099dfc477d5b936fee3946") }
{ "_id" : ObjectId("4f099e02477d5b936fee3947") }
特定のレコードのみ検索するには、
> db.coll1.find({"name":"tarou"})
{ "_id" : ObjectId("4f099dfc477d5b936fee3946"), "name" : "tarou", "age" : 20 }
とする。現在のDBの全コレクション一覧の取得は
> show collections coll1 system.indexesとする。
「coll1」コレクションの削除は、
> db.coll1.drop()現在のDBの削除は、
> db.dropDatabase()とする。