我最近将猫鼬模式从
String
更改为 Number
。当我从数据库读取数据时,它显示为数字,但是当我尝试根据更改的属性创建过滤器时,我没有得到在进行架构更改之前保存的任何文档。当我使用 Robo 3T 检查时,我看到数据类型仍然显示 string
。我想全部改成Number。即使我更新文档后,数据类型似乎也没有改变。
const mySchema = new mongoose.Schema(
{
status: {
type: Number,
default: 1
}
}...)
这是它在数据库中的样子
我将不胜感激任何帮助
我不再使用
findOne
mySchema.statics.updateStatus = async function(id, status){
try{
const record = await this.findOne({_id: id});
if(record){
record.status = parseInt(status);
}
const updatedRecord = await record.save();
return updatedRecord;
}catch(err){
return null;
}
}
使用
fineOneAndUpdate
mySchema.statics.updateStatus = async function(id, status){
try{
const record = await this.findOneAndUpdate({ _id:id }, {status}, {
returnOriginal: false
});
return record;
}catch(err){
return null;
}
}
并且它更新了数据库中的数据类型。