以下是一个示例代码,展示了如何减少Mongoose模型中的两个值之一:
const mongoose = require('mongoose');
const Schema = mongoose.Schema;
// 定义模式
const ExampleSchema = new Schema({
value1: {
type: Number,
default: 0
},
value2: {
type: Number,
default: 0
}
});
// 创建模型
const ExampleModel = mongoose.model('Example', ExampleSchema);
// 减少一个值的方法
const decrementOneValue = async (id, field) => {
try {
// 查找文档
const doc = await ExampleModel.findById(id);
if (doc) {
// 根据字段减少值
if (field === 'value1') {
doc.value1 -= 1;
} else if (field === 'value2') {
doc.value2 -= 1;
}
// 保存更新后的文档
await doc.save();
console.log('值已减少:', field);
} else {
console.log('找不到文档');
}
} catch (error) {
console.error('发生错误:', error);
}
};
// 使用示例
const exampleId = '60c9a6850c5a8a21a02e3b42';
const fieldToUpdate = 'value1';
decrementOneValue(exampleId, fieldToUpdate);
该示例假设有一个名为Example
的模型,其中包含value1
和value2
两个属性。decrementOneValue
函数接受一个文档的id和要减少值的字段作为参数。它会查找具有给定id的文档,然后根据给定的字段减少相应的值。最后,它将保存更新后的文档。