0
0

プログラム

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0