🍃
MongoDB基礎2:インポート、エクスポート、クエリ
引き続き、MongoDB Universityで提供されているオンラインコース"MongoDB Basics"から要点をまとめていきます。今日はChapter2です。
MongoDBはどのようにデータを保存するのか?
MongoDBシェルを使ってドキュメントを編集するとき、JSONが使われます。
しかし、JSONには以下のように良い面に加えて悪い面もあります。
| Pros of JSON | Cons of JSON |
|---|---|
| 親しみやすい | テキストベース(遅い) |
| 読みやすい | スペースを取る |
| 読みやすい | データタイプが制限される |
これらを解決するために*BSON(Binaray JSON)*が生まれました。
JSONとBSONには以下のような違いがあります。
| 比較項目 | JSON | BSON |
|---|---|---|
| Encoding | UTF-8 String | Binary |
| データサポート | String, Boolean, Number, Array | String, Boolean, Number, Array, Date, Raw Binary |
| 可読性 | 人とマシン | マシンのみ |
MongoDBはBSONとしてデータを保存し、JSONとしてデータを見せてくれます。
インポートとエクスポート
データをインポートもしくはエクスポートするときに使用するコマンドは、JSONとBSONで異なります。
| コマンド | JSON | BSON |
|---|---|---|
| インポート | mongoimport | mongorestore |
| エクスポート | mongoexport | mongodump |
それぞれのコマンドの後に、uri文字列を続ける形でコネクションを指定します。
データエクスプローラー
MongoDBでは、データのクエリを実行する方法が2つあります。
1. AtlasのUIからアクセス

上記のようにJSON形式でデータにフィルターをかけ検索することができました。
2. find()コマンド
find()でクエリを実行するまでの準備は以下のようになります。
-
use データベース名で使用するDBを指定。 -
show collectionsで指定したDBにあるコレクション一覧を表示。 -
db.コレクション名.find()でコレクション内の全てのドキュメントを表示。
以降は1の方法と同様にJSON形式のフィルターをかけることでクエリを実行できます。
まとめ
- 人が見るデータはJSONで、効率よくデータを処理したいときはBSONでインポート・エクスポートをする
- MongoDBでデータを検索する方法は2つ: AtlasUI と MongoDBシェル
- MongoDBシェルでは、
データベース名.コレクション名に続く形で色々なクエリを実行できる(find, count, pretty...etc)
Discussion