[MongoDB]
MongoDB
環境構築
$ wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - $ echo "deb http://repo.mongodb.org/apt/debian buster/mongodb-org/4.4 main" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list $ sudo apt-get update $ sudo apt-get install -y mongodb-org
- これだけで起動できるはずなのだが、過去に入れていたバージョンを削除したためいろいろトラブった
// pidファイルの削除 $ sudo rm -f /var/lib/mongodb/mongod.lock // db関連ディレクトリの再作成 $ sudo rm -rf /var/lib/mongodb $ sudo rm -rf /var/log/mongodb $ sudo mkdir -p /var/lib/mongodb $ sudo chown -R mongodb:mongodb /var/lib/mongodb $ sudo mkdir -p /data/db $ sudo chown -R mongodb:mongodb /data/db $ sudo mkdir -p /var/log/mongodb $ sudo chown -R mongodb:mongodb /var/log/mongodb
- confファイルを用意する
- fork: false にしないと起動できない
- /var/log/mongodb をmongodbユーザに所属させないとログもなしに落ちる
$ sudo cat /etc/mongod.conf systemLog: destination: file path: "/var/log/mongodb/mongod.log" logAppend: true storage: journal: enabled: true processManagement: fork: false net: bindIp: 127.0.0.1 port: 27017 setParameter: enableLocalhostAuthBypass: false
- 起動
- いろいろ面倒だ
$ sudo systemctl start mongod $ sudo systemctl status mongod ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2020-09-29 11:56:29 JST; 16s ago
クライアントのインストール
- Compassという比較的見やすいクライアントがある
- いい感じに起動
JSONのインポート
- mongoimportを使えばできる、が型指定などはCSVでないとできないようだ
$ mongoimport --db [db名] --collection [collection名] --type json --file XXX.json
JSONに_idというキーを用意しとけばそれがidになる。すでにある_idのデータを置換したければ
$ mongoimport --mode upsert --db [db名] --collection [collection名] --type json --file XXX.json
全文検索
- あいまい検索をやりたい
// コンソールから > db.reviews.createIndex( { comments: "text" } ) // 闇キャラであいまい検索 > db.reviews.find( { $text: { $search: "闇キャラ" } } )
ちなみにcollectionにハイフンを混ぜた場合 db["sample-collection"] でアクセスできる
mongodb-compass.png