[英]What is the best mongoose practices to PATCH a large document: global or specific PATCH?
假設我有一個像這樣的大 Model:
const largeSchema = mongoose.Schema({
var1: {type: Number, required: true, unique: true},
var2: {type: String, required: true},
var3: {type: String, required: true},
var4: {type: String, required: true},
varsA: {type: [String], required: true, default: []},
varsB: {type: [SchemaB], ref: 'SchemaB'},
var5: {type: mongoose.Schema.Types.ObjectId, ref: 'Schema5'},
varsC: {type: [SchemaC], required: true, default: []},
varsD: {type: [SchemaD], required: true, default: []},
varsE: {type: [SchemaE], required: true, default: []},
varsF: {type: [SchemaF], required: true, default: []},
var6 {type: Schema6},
varsG: {type: [SchemaG], required: true, default: []},
varsH: {type: [SchemaH], required: true, default: []},
},{timestamps: true});
如您所見,像這樣的 model 包含每個引用模型和嵌入式模型,有些在數組中,有些則沒有。 此外,其中一些數組可能很大(每個數組不超過 100 個項目)。
我的問題是關於數組中的這些嵌入式模式。
假設每個字段都可以更新。 如果我想更新varsE中的一項。 我應該使用全局補丁來修補我的整個列表嗎? 或者為這個 model 的每個數組構建一條路由?
架構:Node.JS - Express - Mongoose
我建議您只更新數組中的特定元素而不是全局補丁,以避免不必要地污染其他元素。 以下示例說明如何更新數組中的特定元素。
await LargeSchemaModel.update({'items.id': 1}, {'$set': { 'items.$.name': 'updated name', 'items.$.value': 'updated value' }});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.