node.js MongoDBのドキュメントを更新する

node.js MongoDBのドキュメントを更新する

node.js で、MongoDBのドキュメントを更新するサンプルコードを記述してます。nodeのバージョンは、14.15.1です。

環境

  • OS  Ubuntu 20.10
  • node V14.15.1
  • npm 6.14.9
  • mongo 4.4.2

mongooseインストール

mongooseを使用して、接続するので、npmでインストールしておきます。

npm i mongoose

MongoDB接続

先にmongoでDBを作成しておきます。

$ mongo

> use sampledb
switched to db sampledb

> db.users.save( {username:"sample"} )
WriteResult({ "nInserted" : 1 })

> show dbs
sampledb  0.000GB

以下は、ドキュメント作成した後にドキュメントを更新して表示するサンプルコードとなります。

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

// 接続
const options = {
    useUnifiedTopology: true,
    useNewUrlParser: true
}

mongoose.connect('mongodb://127.0.0.1/sampledb', options)
    .then(() => console.log('connected'))
    .catch((err) => console.error(err));

// スキーマ作成
const mongoSchema = new Schema({
    name: String,
    age: Number,
});

// モデル作成
let sample = mongoose.model('sample', mongoSchema);

// ドキュメント作成
const jiro = new sample({
    name: 'jiro',
    age: 19
});

// ドキュメント保存
jiro.save((err) => {
    if (err) throw err;
});

// ドキュメント更新
sample.update(
    { name: 'jiro' },
    { $set: { age: 25 } },
    (err) =>{
        if (err) throw err;
    }
);

// 検索
sample.find({ name: 'jiro' }, (err, result) => {
    if (err) throw err;
    console.log(result[0].name); // jiro
    console.log(result[0].age); // 25
});