我通過他們的不和諧 ID 將用戶的資料保存到我的資料庫中,直到今天我只用它來獲取他們的資料,但我試圖通過保存到資料庫中的 ID 來獲取用戶,發現它找不到用戶,因為資料庫中的 ID 是不正確。
例如,如果用戶 id358262932791885824會這樣保存,358262932791885800或者如果用戶 id243422653547937792會這樣保存243422653547937800。我正在尋找解決方案,并在這篇文章中發現有人說這是因為Number.MAX_SAFE_INTEGER但我不明白,也找不到問題的解決方案。如果您能幫助我了解情況并解決問題,將非常高興!
如果用戶的 Discord ID 上沒有保存資料,則此代碼會創建一個新 ID
let kontrol = await user.findOne({discord_id: message.author.id});
if (!kontrol) {
let newUser = new user({
discord_id: message.author.id,
xp: 0,
level: 0,
money: 0,
inventory: [],
daily: {
last: 0,
next: 0
},
warnings: {
adWarn: 0
}
})
await newUser.save();
}
我的用戶架構
const mongoose = require('mongoose')
const user = new mongoose.Schema({
discord_id: {
type: Number,
unique: true,
required: true
},
xp: {
type: Number,
default: 0,
required: true
},
level: {
type: Number,
default: 0,
required: true
},
money: {
type: Number,
default: 0,
required: true
},
inventory: {
type: Array,
default: [],
required: true
},
daily: {
last: {
type: Number,
default: 0,
required: true
},
next: {
type: Number,
default: 0,
required: true
}
},
warnings: {
adWarn: {
type: Number,
default: 0,
required: true
},
}
});
module.exports = mongoose.model('user', user)
```js
Tried to save users datas with discord ids.
Data saved without error or problem but the discord id is not correct.
When i try to fetch data by id tho, theres no problem fetching it from database.
But when i try to fetch user by id from database, i cant.
uj5u.com熱心網友回復:
這意味著discord_id應該是一個字串。每個 Discord ID/雪花都應存盤為字串。如果您將 ID 存盤為整數并且它大于Number.MAX_SAFE_INTEGER(2^53),它將無法以數字型別表示,并且將通過 JavaScript 轉換為其他內容(例如將最后一個數字更改為零)。
discord_id: {
type: String,
// ...
}
另請參閱為什么我的查詢輸出顯示的內容與資料庫中的內容完全不同?和使用 sqlite3 時修改的資料
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/527091.html
標籤:javascript节点.jsmongodb猫鼬不和谐.js
上一篇:當find()使用MongoDB作業正常時,為什么find_one()會超時?
下一篇:Pandas中的替換方法
