检查过的猫鼬sava()数据如果不存在则创建文档,否则,更新数据

问题描述 投票:0回答:1

如果数据已经存在,我将以猫鼬模式保存1秒钟,请更新该文档

   this.sub.on('message',async function (topic, message) {
        const soilesensor = new SensorModel({
            topic: topic,
            value : parseFloat(message.toString())
          })
          await soilesensor.save();
          cb && cb(topic,message); 
    })

我的猫鼬模式是

const mongoose = require('mongoose')


const sensor = mongoose.Schema({
    topic : {type : String ,index : true},
    value : {type :Number ,index : true},
    date: { type: Date, default: Date.now ,  index: true}
})

const Sensor = mongoose.model('Sensors' , sensor )

module.exports = Sensor ;

如果数据已经存在,我只是保存文档,请更新该文档

javascript node.js express mongoose
1个回答
0
投票

您可以使用upsert。您需要通过upsert: true

尝试以下示例:

db.books.update(
   { item: "ZZZ135" },   // Query parameter
   {                     // Replacement document
     item: "ZZZ135",
     stock: 5,
     tags: [ "database" ]
   },
   { upsert: true }      // Options
)
© www.soinside.com 2019 - 2024. All rights reserved.