プログラム
mongo_update.js
// ----------------------------------------------------------------
// mongo_update.js
//
// Jun/28/2024
// ----------------------------------------------------------------
const mongoose = require('mongoose')
// ----------------------------------------------------------------
function get_current_date_proc()
{
const today = new Date ()
var ddx = today.getFullYear () + "-" + (today.getMonth () +1)
ddx += "-" + today.getDate ()
return ddx
}
// ----------------------------------------------------------------
console.error ("*** 開始 ***")
// MongoDB コネクションの設定
const mongoURI = 'mongodb://localhost:27017/city'
// MongoDB への接続
mongoose.connect(mongoURI)
// 接続が確立された時のコールバック
const db = mongoose.connection
db.on('connected', function() {
console.log('MongoDBに接続しました')
})
// データのスキーマ定義
const citySchema = new mongoose.Schema({
id: String,
name: String,
population: Number,
date_mod: Date
})
// モデルの作成
const City = mongoose.model('City', citySchema, 'saitama')
const updateCities = async (id_in,population_in) => {
try {
console.log("*** updateCities bbb ***")
const ddx = get_current_date_proc()
await City.updateOne({ id: id_in }, {
population: population_in, date_mod: ddx
})
} catch (error) {
console.error('データの取得に失敗しました', error)
} finally {
// 接続の切断
mongoose.connection.close()
console.error ("*** 終了 ***")
}
}
// ----------------------------------------------------------------
const id=process.argv[2]
const population_in=parseInt(process.argv[3])
console.log(id + "\t" + population_in)
updateCities(id,population_in)
// ----------------------------------------------------------------
実行
コマンド
go_update.sh
export NODE_PATH=/usr/local/lib/node_modules
node mongo_update.js t1166 9876500
実行結果
$ ./go_update.sh
*** 開始 ***
t1166 9876500
*** updateCities bbb ***
MongoDBに接続しました
*** 終了 ***
確認した環境
$ node --version
v22.3.0