MongoDB
ナビゲーションに移動
検索に移動
目次
MongoDB
ドキュメント指向データベース
スキーマレス
- スキーマを定義しなくても利用できる
- スキーマレスのため保守性が高い
- JSON方式でデータを保持
- テーブルのことはコレクションと呼ぶ
パフォーマンス
- 機能制限により、高パフォーマンスを実現
- トランザクションがない
- 処理速度がかなり高速
- 大量データの高速処理に向く
- スケールアウトが簡単な設定で可能
操作感
- RDBと似た操作
- 複雑な検索条件を利用できる
インストール
Ubuntu
ubuntu@puli-mon:~$ cat /etc/os-release NAME="Ubuntu" VERSION="20.04.2 LTS (Focal Fossa)" : ubuntu@puli-mon:~$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - OK ubuntu@puli-mon:~$ echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list ubuntu@puli-mon:~$ sudo apt-get update ubuntu@puli-mon:~$ sudo apt-get install -y mongodb-org
ディレクトリ
種類 | 場所 | 備考 |
---|---|---|
データ | /var/lib/mongodb | |
ログ | /var/log/mongodb | |
設定 | /etc/mongod.conf |
開始
ubuntu@puli-mon:/etc$ sudo systemctl start mongod
- 失敗する場合
sudo systemctl daemon-reload
GUI
mongo-express
インストール
- Node.jsのインストール
$ sudo apt install curl $ curl https://raw.githubusercontent.com/creationix/nvm/master/install.sh | bash $ source ~/.profile $ nvm ls-remote $ nvm install v16.1.0 $ nvm use v16.1.0
- monogo-expressインストール
- https://qiita.com/AkihiroTakamura/items/54c6a5bc1e4d67e94d46
ubuntu@puli-mon:~/opt$ mkdir mongo-express ubuntu@puli-mon:~/opt$ cd mongo-express/ ubuntu@puli-mon:~/opt/mongo-express$ npm install https://github.com/andzdroid/mongo-express/tarball/master ubuntu@puli-mon:~/opt/mongo-express$ cd node_modules/mongo-express/ ubuntu@puli-mon:~/opt/mongo-express/node_modules/mongo-express$ cp config.default.js config.js ubuntu@puli-mon:~/opt/mongo-express/node_modules/mongo-express$ vi config.js ubuntu@puli-mon:~/opt/mongo-express/node_modules/mongo-express$ node app
利用
monogoシェルの実行
ubuntu@puli-mon:/etc$ mongo MongoDB shell version v4.4.6 connecting to: mongodb://127.0.0.1:27017/? : --- >
データベース作成
- use で作成
> use testdb switched to db testdb
コレクションを作成
> db.createCollection("testDoc") { "ok" : 1 }
- 一覧を確認
> show dbs admin 0.000GB config 0.000GB local 0.000GB testdb 0.000GB
ドキュメントの登録
- testDocは、コレクション
> db.testDoc.insertOne( ... {name:"Foo",value:"Bar"} ... ) { "acknowledged" : true, "insertedId" : ObjectId("609f57392efac2b731a534eb") }
検索
- find
> db.testDoc.find() { "_id" : ObjectId("609f57392efac2b731a534eb"), "name" : "Foo", "value" : "Bar" }
© 2006 矢木浩人