簡體   English   中英

PATCH 大型文檔的最佳 mongoose 做法是什么:全局 PATCH 還是特定 PATCH?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM