【发布时间】:2021-09-09 16:15:07
【问题描述】:
我不知道为什么会发生这种情况,我有一个带有字段“地址”的唯一键的架构,但我得到了重复的条目。我还在插入新文档之前检查 Model.exists() 是否仍然插入文档。我不知道为什么,我也偶尔会在控制台中遇到重复输入错误。这是我的代码
const Schema = mongoose.Schema(
{
address : { type: String, unique: true },
isContract : { type: Boolean, required: true, default: false },
ethervalue : { type: Number, default: 0 },
symbol : { type: String, unique: true },
tokenname : { type: String},
divisor : { type: Number },
tokentype : {type: String},
bluecheckmark: {type : Boolean, default: false},
description: {type: String},
totalsupply: {type: Number},
},
{ timestamps: true }
);
async saveAddress(address) {
try {
const exists = await Address.exists({ address: address });
if (!exists) {
const isContract = await this.isContract(address);
let temp = new Address();
if (isContract) {
const info = await etherscan.getTokenInfoByContractAddress(address);
temp.isContract = true;
if(info.status == 1){
temp.symbol = info.result[0].symbol;
temp.tokenname = info.result[0].tokenName;
temp.totalsupply = info.result[0].totalSupply;
temp.divisor = info.result[0].divisor;
temp.tokentype = info.result[0].tokenType;
temp.description = info.result[0].description
temp.bluecheckmark = info.result[0].blueCheckmark
}
}
temp.address = address;
await temp.save();
}
} catch (error) {
console.log('saveAddres()', error.message);
}
}
【问题讨论】: