パンジェンシーの「汗だく開発日誌」

システム開発の備忘録です。

【MongoDB】基本的なコマンドの使い方

こんにちわ!
パンジェンシーです。

f:id:x-fieldatts:20150502134035p:plain

 

今回は、MongoDBの基本的な使い方の備忘録を書いておきます。

用語の定義

フィールド フィールド名と値のセットです。フィールドリレーショナル・データベースのカラムに相当。
ドキュメント 複数のフィールドの集まりです。リレーショナル・データベースのレコードに相当。
コレクション ドキュメントの集まりです。リレーショナル・データベースのテーブルに相当。
データベース(db) コレクションの集まりです。リレーショナル・データベースのデータベースと同じ意味です。
db
 L collection
    L document{{field:value},{field:value},{field:value}}
    L document{{field:value},{field:value},{field:value}}
    L document{{field:value},{field:value},{field:value}}
 L collection
    L document{{field:value},{field:value},{field:value}}
    L document{{field:value},{field:value},{field:value}}
    L document{{field:value},{field:value},{field:value}}

という感じのイメージみたいです。

 

データベースへのアクセス

MongoDBにアクセスするには、端末からmongoと入力します。

$ mongo

すると、mongoシェルが立ち上がります。


バージョンを表示してみましょう。

> version()
2.4.9


データベースの一覧を見る場合には、

> show dbs

とします。

データベースにアクセスするには、

> use [db名]

とします。


更に、dbに含まれるコレクションを参照したい場合は、

> show collections

とします。

ドキュメントを追加する方法

データベースに新しいドキュメントを追加するには、insert()を使います。

ここでは、データベース名をdb1、コレクション名をcol1とし、

{
    name: "takashi",
    age: 18
}

というドキュメントを追加したいとします。

> use db1
> db.col1.insert({ name: "takashi", age: 18 })

で追加できます。

find()で内容を確認してみましょう。

> db.col1.find()

フィールドの値を変更する方法

既に入力したドキュメントのフィールドの値を変更する場合は、update()を使います。

takashiの年齢を19歳に変更する場合、

> db.col1.update({ name: "takashi"}, { $set: { age: 19 } })

とします。

第一引数{ name: "takashi"}をクエリといい、コレクションの中からnameがtakashiのドキュメントを探してきます。

第二引数はオペレーションといい、$setオペレーターだと、ageの値を19に置き換えます。

他の主なオペレーターの意味は以下です。

$inc 数値を足したり引いたりできます
$mul 数値をかけます
$rename フィールド名を変更します
$unset フィールドを削除します


フィールドの値がArray(配列)の場合は、

$push 配列に要素を追加
$pull 配列から要素を削除
$pop 配列から要素を1つ取り出す

などができます。

オペレーターは他にも色々あります。

ドキュメントを削除する方法

既に入力したドキュメントを削除する場合は、remove()を使います。

nameがtakashiのドキュメントを削除したい場合は、

> db.col1.remove({ name: "takashi" })

とします。

ドキュメントを検索する方法

コレクションの中から、特定のドキュメントを検索する場合は、find()を使います。

コレクションの中から、ageが18のドキュメントのnameフィールドを抽出したい場合は、こう書きます。

> db.col1.find( { age: 18 }, { name: 1, _id: 0 })

第一引数はクエリ、第二引数には、抽出したいフィールドを1,抽出しないフィールドを0で指定します。

_idというのは、ドキュメントを追加した時に自動で割り振られるIDです。

第二引数を指定した場合、_idと1に指定したフィールドが抽出されます。

_idを抽出したくない場合は、0を指定する必要があります。

まとめ

他にも色々なことができますが、わたくしが使っているのはだいたいこんなものです。


以上