簡體   English   中英

更新 MongoDB 中的許多文檔(新架構)

[英]Update many documents in MongoDB (new Schema)

我需要一些有關 mongo 客戶端命令的幫助,我必須更新集合中的每個文檔,這是我的新 ProductSchema:

const ProductSchema = Schema({
    name: { type: String, default: ''},
    price: { type: Number, default: 0 },
    image: { type: [String], default: [] },
    category: { type: String, default: '' },
});

module.exports = mongoose.model('Product', ProductSchema);

舊的 ProductSchema 默認具有Product.image = null 所以我有很多產品以這種方式存儲在數據庫中。 如果Product.image == null我如何更新我的數據庫集合中的每個文檔? 然后為其分配一個空數組( Product.image = [] )。 提前致謝。

您只需要執行update查詢。 正如文檔解釋方法允許三個字段:

  • 查詢:更新的選擇標准。
  • 更新:要應用的修改。
  • 選項:像multiupsert或其他...

因此,如果您只想更新image = null的值,您只需查詢以下元素: image: null然后執行更新: image: []

使用 mongo 您必須在選項中添加multi: true以更新所有值,而不僅僅是第一個匹配的值。

所以查詢是這樣的:

db.collection.update({
  "image": null
},
{
  "$set": {
    image: []
  }
},
{
  multi: true
})

這里的例子

此外,如果您使用的是 mongoose ,您可以直接調用updateMany()然后您不需要multi: true選項。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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