所以,我正在構建一個使用 MongoDB 作為我的資料庫的應用程式。在我的資料庫中存在3種不同的模式:Section,Category,和Product。
模式定義如下:
let ProductSchema = new mongoose.Schema({
name: String,
price: String,
imageLink: String
})
let CategorySchema = new mongoose.Schema({
name: String,
products: [{ ref: 'Product', type: mongoose.Types.ObjectId}],
link: String
})
let SectionSchema = new mongoose.Schema({
name: String,
categories: [{ ref: 'Category', type: mongoose.Types.ObjectId }]
})
然后我構建了一個簡單的 API,使用Express, 來測驗集成,當在各自模型上使用方法檢索所有Sections、Categorys 和s 時,物件的s 發生了變化。因此,例如,對于一個簡單的查詢與它我得到以下結果:Productfind()_idSection_id
{
"_id": "618042725b8fc016e4b76714",
"name": "AHUMADOS Y CAVIAR",
"categories": [
{
"_id": "61804dee7ac1146082cdb4b2",
"products": []
}
],
"__v": 0
}
然后我再次提出相同的請求,我得到以下資訊:
{
"_id": "618042725b8fc016e4b76714",
"name": "AHUMADOS Y CAVIAR",
"categories": [
{
"_id": "61804e257ac1146082cdb4b6",
"products": []
}
],
"__v": 0
}
正如您所看到的_id,categories每次查詢時,內部物件的數量都會發生變化,這是一種奇怪的行為。有誰知道為什么會這樣?
預先感謝您的回答。
uj5u.com熱心網友回復:
我有在一個專案中創建資料庫模型的代碼,以及在另一個專案中訪問資料庫的代碼。問題是用于創建資料庫的模式是原始問題中發布的模式,但用于訪問資料庫的模式如下:
let ProductSchema = new mongoose.Schema({
name: String,
price: String,
imageLink: String
})
let CategorySchema = new mongoose.Schema({
name: String,
products: [ProductSchema],
link: String
})
let SectionSchema = new mongoose.Schema({
name: String,
id: Number,
categories: [CategorySchema]
})
所以,我猜,當使用這些模式查詢資料庫時,mongoose正在為它們中的每一個創建一個新的模型物件,導致一直在_id變化。
只需更改用于訪問資料庫的模式的代碼并將其替換為正確的模式即可解決問題。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/348841.html
上一篇:查找mongodb后查詢陣列
下一篇:findOne在貓鼬中給我和錯誤
