はじめに
最近数年ぶりに mongoDB を触ったのですが、これだけ時間が経つとほとんど使い方忘れちゃってますね、、
また数年後に1からやり直しになるのはツライのでよく使うコマンドをメモしておきます
インストール
公式サイト
https://github.com/mongodb/node-mongodb-native
DB 接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| const mongodb = require('mongodb') const MongoClient = mongodb.MongoClient async function init() { client = await MongoClient.connect('mongodb://user:pass@localhost:27017', { useUnifiedTopology: true }) } init()
const db = client.db('testDB') const col = db.collection('testCOL')
|
データ取得(SELECT)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| const req_data = { user_id: 123 }
const res_fields = { _id: 0, user_id: 1, user_name: 1 }
const res_data = await col .find(req_data) .project(res_fields) .toArray()
|
検索条件で OR を使う
1 2 3 4
| let req_data = { $or: [{ user_id: 123 }, { use_flg: 1 }] }
|
検索条件で json のキーを使う
1 2 3
| const user_id = 123 let req_data = {} req_data['user.' + user_id] = { $exists: true }
|
データ更新(UPDATE)
1 2 3 4 5 6 7 8
| const req_data = { user_id: 123 }
const update_data = { $set: { status: 9 } }
const data = await col.updateOne(req_data, update_data)
|
$set
を使わないとドキュメントごと上書きになるので注意
連想配列の特定のデータのみ更新
1 2 3 4 5
| let update_data = {} update_data['hoge_json.' + hoge_id + '.piyo_json.' + piyo_id + '.name'] = 'test name' let data = await col.updateOne(req_data, { $set: update_data })
|
配列になければ追加
1 2 3 4 5 6
| const req_data = { user_id: 123 } const data = await col.updateOne(req_data_team, { $addToSet: { hoge_list: '123' } })
|
連想配列から特定のデータだけ削除
1 2 3
| let update_data = {} update_data['hoge_json.' + json_key] = '' let data = await col.updateOne(req_data, { $unset: update_data })
|
ドキュメント追加(INSERT)
1 2 3 4 5 6
| let req_data = { user_id: 123 }
const data = await col.insertOne(req_data)
|
おわりに
他にもあれば追加します
以上です