GMT+0900仕事でMongoDBを少し触る機会ができたので、概念とか基本的なコマンドについて少し書いてみます。SQL)データベースの一種です。NoSQLデータベース定義は今のところあいまいなようで、大雑把に書くとRDBでないものがまとめてNoSQLデータベースと呼ばれているようです。NoSQLデータベースにも種類がたくさんあって、MongoDBはドキュメント指向データベースです。この辺の詳しい話はこことかここが参考になると思います。下記は既存のDBとの用語の比較です。ドキュメントコレクションとフィールドコレクション(テーブル)にフィールド(カラム)の定義は存在しません。そのため、同じコレクション内に異なるフィールドを持つドキュメント(レコード)を作成することが可能です。この時点でRDBしか触ったことない人間には意味不明...用語もややこしいし...ただし、コレクションの_idフィールドは絶対必要なようで、これがプライマリーキーになります。指定しなかった場合はINSERT時に自動で作成されます。トランザクションMongoDBも含めてNoSQLデータベースにはトランザクションがないものがあります。トランザクションが必要な場合は自分で相当する機能を実装する必要があるようです。操作SQL相当の操作はJSON形式で行います。"パスワード"デフォルトのポートは27017です。データベース名は省略可能です。ユーザー/パスワードも存在しない場合は省略可能です。非常に紛らわしいですがstatusではないです。先にuseで使用するデータベースを指定します。collections;SELECT12345678//全件取得「{}」はありなしどちらでも行けます。フィールド名:"値"});EXISTSMongoDBのexistsはフィールドが存在するかどうかを指します。特定のフィールド(カラム)を持つドキュメント(レコード)を取得する場合は次のように書きます。1db.コレクション名.find({フィールド名:{$exists:true},追加の検索条件....});INSERT前述の通り_idを指定した場合はその_idが、指定しなかった場合はハッシュ値が自動で振られます。_idはプライマリキーなので当然重複はできません。自動でコレクションが作成されます。{$set:{フィールド名:"値"}});DELETE全件削除する場合に2.x系と3.x系で微妙に違うので注意です。12345678//全レコード削除(2.×系)db.コレクション名.remove();//全レコード削除(3.×系)db.コレクション名.remove({});//指定して削除db.コレクション名.remove({フィールド名:"値"});GUICLIでの操作について書きましたが、GUIで操作する場合はRobomongoかmongo-expressあたりが良いと思います。この2つは割と頻繁にコミットされていてユーザも多そうでした。「Robomongo」は各OSのインストーラがあります。「mongo-express」はnode.jsで動かします。私は最初に「Robomongo」を試しましたがなぜか接続できずに「mongo-express」を使いました。次あたりは「mongo-express」について書きたいな~と、思ってたんですが...今回はMongoDBを使わないという判断になったので、そのあたりは気が向いたら書きます。YoshinoriN)。