More Related Content
Similar to 2019年度 若手技術者向け講座 NoSQL
Similar to 2019年度 若手技術者向け講座 NoSQL (20)
2019年度 若手技術者向け講座 NoSQL
- 10. ドキュメントDB
• ドキュメントDB
• JSON形式のデータを格納するNoSQLのDBです。
• シンプルなデータしか扱わない場合は、KVSでも十分でしたが、デー
タ形式としてJSONが多く使われるようになった背景から、ドキュメン
トDBが誕生しました。
• JSON
• JSONとは、JavaScript Object Notation の略で、軽量でテキストベースの
データ交換方式です。
• 変数名と値を「:」で区切り、「,」でデータを連結できます。
• JSONの例
{ ID: 1234, NAME: "kishimoto" }
10
- 15. KVS
• Redis
• KVSに属するDB製品の一つです。
• 格納できる値には、「String」「List」「Set」「Hash」「Sorted Set」な
どがあります。
• データの蓄積は基本的にメモリ上で行われるため、非常に高速です。
⇒ディスクへの書き出しやRDBによる永続化は可能。
• 条件検索や、order by、distinctなどの機能はありません。
15
- 27. MongoDB
• MongoDBの用語
• Document
• データ(ここではJSON)のこと。
• Collection
• ドキュメントを格納するもの。
• RDBでいうところのテーブルに該当するもの。
• Database
• 複数のコレクションを格納するもの。
• PostgreSQLのデータベースの概念と同じ。
• MongoDBの中には複数のデータベースが作成可能。
27
- 35. MongoDB
• コマンド一覧(コレクション操作)
• コレクションの作成
• コレクションの一覧確認
• コレクションの名前の変更
• コレクションの削除
35
> db.createCollection("コレクション名");
> show collections;
> db.コレクション名.renameCollection("新コレクション名");
> db.コレクション名.drop();
- 37. MongoDB
• コマンド一覧(データの検索)
• データの検索
• 抽出条件の書き方
• 等値検索:{フィールド名 : 値}
• 比較演算子の使用:{フィールド名 : {比較演算子 : 値}}
• 比較演算子
• $gte:以上
• $gt:大なり
• $lte:以下
• $lt:小なり
• $eq:等しい
• $ne:等しくない
37
> db.コレクション名.find({抽出条件}, {抽出フィールド});
- 38. MongoDB
• 抽出条件の書き方(データの検索続き)
• 正規表現:{フィールド名 : jsの正規表現}
• 複数の条件指定(AND):カンマ区切りで条件を指定
• {条件1, 条件2, …}
• 複数の条件指定(OR):$orを使用し、[]の中に条件を記述
• {$or : [条件1, 条件2, …]}
• 一つのフィールドに複数の条件指定(in)
• {フィールド名 : {$in : [値1, 値2, …]}}
38
- 39. MongoDB
• コマンド一覧(データの検索)
• データの検索
• 抽出フィールドの描き方
• フィールド名: [0|1]
• 0:非表示、1:表示
• {name: 1} とすると、nameのみが
• {id: 0} とすると、id以外が表示される
• 0と1は基本的に混在させることはできないが、idは0で他の項目を1に
することができる。
{ _id: 0, name: 1}
39
> db.コレクション名.find({抽出条件}, {抽出フィールド});
- 40. MongoDB
• コマンド一覧(検索・その他)
• 抽出件数の絞り込み
• 並び替え(昇順)
• 並び替え(降順)
• 読み飛ばし
40
> db.コレクション名.find().limit(取得件数);
> db.コレクション名.find().sort({フィールド: 1});
> db.コレクション名.find().sort({フィールド: -1});
> db.コレクション名.find().skip(読み飛ばし件数);
- 54. 参考文献
• 参考文献
• ドットインストール(https://dotinstall.com/)
• MongoDB入門
• SlideShare
• MongoDB基本の基本
• https://www.slideshare.net/naruoga/mongodb-37598058?qid=01339086-1d29-4620-
920c-e942a2f4cc79&v=&b=&from_search=5
• MongoDB事例紹介
• https://www.slideshare.net/tetsutarowatanabe/mongodb-32964238?qid=9c9c40f6-
c717-4b83-9983-bae2779e14cc&v=&b=&from_search=13
54