【MongoDB】基本的なコマンドの使い方
こんにちわ!
パンジェンシーです。
今回は、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を指定する必要があります。
まとめ
他にも色々なことができますが、わたくしが使っているのはだいたいこんなものです。
以上