🍃

MongoDB基礎2:インポート、エクスポート、クエリ

2021/10/05に公開

引き続き、MongoDB Universityで提供されているオンラインコース"MongoDB Basics"から要点をまとめていきます。今日はChapter2です。

https://university.mongodb.com/

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()でクエリを実行するまでの準備は以下のようになります。

  1. use データベース名で使用するDBを指定。
  2. show collectionsで指定したDBにあるコレクション一覧を表示。
  3. db.コレクション名.find()でコレクション内の全てのドキュメントを表示。

以降は1の方法と同様にJSON形式のフィルターをかけることでクエリを実行できます。

まとめ

  • 人が見るデータはJSONで、効率よくデータを処理したいときはBSONでインポート・エクスポートをする
  • MongoDBでデータを検索する方法は2つ: AtlasUI と MongoDBシェル
  • MongoDBシェルでは、データベース名.コレクション名に続く形で色々なクエリを実行できる(find, count, pretty...etc)

Discussion