我正在將我的API從Parse.com遷移到我自己的Express.js代碼。我創建了我的貓鼬模型來匹配由parse創建的數據庫,但我遇到了有關指針(關係)的問題。使用Mongoose填充字段的子字符串
下面是兩種模式(簡體儘可能)
const CustomerSchema = new mongoose.Schema({
_id : { type: String, required: true, default:() => randomstring.generate(10) },
name : { type: String, required: true, trim: true },
_p_group : { type: String, required: true, trim: true, set: v => `Group\$${v}`, get: v => v.substr(6) },
});
const GroupSchema = new mongoose.Schema({
_id : { type: String, required: true, default:() => randomstring.generate(10) },
name : { type: String, required: true, trim: true },
});
因此,這裏的問題:_p_group
是一個「指針」到Group
,但解析不會將ID存儲在它,而不是它商店Group$THE_ID
。例如,如果客戶來自編號爲ndj879gLjt
的組,則_p_group
將包含Group$ndj879gLjt
。
我該如何處理關係?我如何退回客戶及其團隊?通常的做法是將ref: "Group"
添加到_p_group
的選項中並執行Customer.find({}).populate('_p_group')
,但由於顯而易見的原因,它在此處不起作用。
解析正在使用mongodb(但不是貓鼬)所以必須有某種方式。此外,解決方案必須與Parse兼容。在最壞的情況下,我仍然可以創建一個包含id的新字段_customer
,但這會使我更新數據的20Go,這實際上並不是我想要的。
爲什麼在地獄裏我會得到一個downvote工作?如果這不是Parse如何解釋,否則它是一個有效的答案。這不是一個「乾淨利落」的答案,但它仍然是當前Parse工作的方式,人們可能想知道或可能想要做同樣的事情。 – Melvin