MongoDBに関する基本的な内容をまとめてみたものです。MongoDBに関する、Web上にすでにある良識な解説コンテンツをまとめたサイトの抜粋です。
[MongoDBにおけるクエリ] (https://www.techcrowd.jp/mongodb/query/)
[MongoDBにおけるクエリの表現力] (https://www.techcrowd.jp/mongodb/query/)
SQLライクな操作言語によりデータベースにアクセスして、CRUD操作(生成・読み込み・更新・削除)を行うことができます。JOINを除く、ほとんどのSQLを再現することができます。
ただし、データ構造がDB -> コレクション -> Documentであり、取り扱うDocumentデータがJSON形式のデータとはなりますので、
・コレクションの各メソッドを用いてCRUD操作をします
・メソッドの引数にはJSON形式のデータを渡します
また、変数・制御構造なども記述することができますので、集計等の高度なクエリも記述することが可能です。
[MongoDBシェルからの利用] (https://www.techcrowd.jp/mongodb/query/)
Mongoクエリ言語はMongoDBのコマンドラインインターフェースであるMongoDBシェルから使用できます。シェルは以下のコマンドから起動します。
$mongo
MongodB shell version: 3.2.1
connecting to: testdb
データの挿入・読み込み・更新・削除
データの挿入・更新・削除・参照は、コレクションのメソッドを呼び出します。たとえば、挿入であれば、下記のように、insertメソッドを呼び出します。
db.collection.insert({"title";"mongo"})
メソッドの引数にはJSON形式のデータを渡します
データを挿入する場合には、insertの引数にJSONのデータを渡しますし、参照する場合には、絞り込みの条件をJSON形式(JSONデータの特定のフィールドに対する条件指定)で指定します。
db.collection.insert({"description";"hello world","list":["Sunday","Monday","Tuesday"]})
変数の利用
MongoDBのシェルでは、JavaScriptの記法で変数を使うことができまする。たとえば、あらかじめ変数に値を設定して、メソッドには変数を渡すことができます。
data = {"description";"hello world","list":["Sunday","Monday","Tuesday"]}
db.collection.insert(data)
制御構造
MongoDBでは、制御構造に関しても、JavaScriptのような制御構造を使うことができます。
for (var i=1; i<=10; i++) db.collection.insert ({x:1, j:i*i})
[JavaからのMongoDBへの接続・操作] (https://www.techcrowd.jp/mongodb/query/)
MongoDBには、たとえばJava MongoDB driverを利用してJavaで接続することができます。
https://docs.mongodb.com/ecosystem/drivers/java/
MongoDBへの接続
DB名を指定して接続します。指定したDB名のDBが存在しなければ、MongoDBが新たに生成します。
DB db = mongoClient.getDB("DB名")
コレクションの取得
コレクション名を指定してメソッドを呼び出すことにより、コレクションを取得することができ、そのコレクションに対してinsertメソッド(挿入)、更新メソッド(update)などを呼ぶことにより、ドキュメントに対する操作を行うことができます。
DBCollection collection = db.getCollection("collection名")