我想知道「Mongo Way」是用於建模兩個用戶之間的項目的待定交易。如何建模MongoDB中的待定交易?
我有一個用戶集合,我有一個書籍集合。在我的應用程序中,用戶將能夠向彼此提交交易。在交易提議被接受之前,交易需要作爲數據庫中的待交易存儲。
在我看來,最好的選擇是有藍本這樣每本書的文件(使用貓鼬)一個「交易」屬性:
const booksSchema = new Schema({
title: { type: String, required: true },
createdAt: { type: Date, 'default': Date.now },
updatedAt: { type: Date, 'default': Date.now },
author: { type: String, required: false},
imageUrl: { type: String, required: false},
ownerUser: { type: Schema.ObjectId, required: true },
trades: [{
fromUser: { type: Schema.ObjectId, required: true },
bookOffered: { type: Schema.ObjectId, required: true }
}]
});
我這個看到的問題是,它會涉及到當交易被接受時更新兩個文件。假設交易被接受,每個文件上的ownerUser
將需要改變,並且需要清除trades
陣列。
看來,要做到這一點,你希望更改是在某種「交易」,以便如果由於某種原因沒有更新,那麼其他也不會。
這是模擬這種情況的典型方法嗎?如何處理情況的「交易」部分?
那麼書的每個例子都會有它自己的條目?您應該也可以在您的模式中包含_id。 –
我覺得這是自動包含在Mongoose中的。 – alwayslearning
MongoDB本身會在服務器上注入一個_id。 –