[英]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
查詢。 正如文檔解釋方法允許三個字段:
multi
, upsert
或其他... 因此,如果您只想更新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.