🍃
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