我想寫一個腳本,在一個雙嵌套陣列中添加一個新欄位,而不洗掉整個陣列。
我試圖在School.teacher.class中添加一個新欄位totalStudents,
這是一個結構:
Work。[...],
School: [{...].
name: {type: String, default: ''/span>}。
teacher:
[{
class: {
enabled: {type: Boolean, default: true}。
grade: [{type: String, default: ''/span>}]。
},
test: {
enabled: {type: Boolean, default: false}。
duration: {type: Number, default: 5}。
},
score: {type: Number, default: 0}。
}]
curve:
[{
lower: {type: Number, default: 0}。
upper: {type: Number, default: 0}。
withinBoundary: {type: Boolean, default: false}。
outsideBoundary: {type: Boolean, default: false}。
enabled: {type: Boolean, default: true}。
}]
}],
我寫的代碼:
db.colllection。 updateMany({}, {$set: {School: [{teacher:[{class:{totalStudents: null}}]}})
uj5u.com熱心網友回復:
首先,你必須在你的模式中的class物件中添加該欄位,
class: {
enabled: {type: Boolean, default: true}。
grade: [{type: String, default: ''}]。
totalStudents: { type: Number }.
},
如果你想在所有的陣列元素中插入欄位,那么你可以嘗試使用位置陣列運算子來在所有的元素中設定欄位,
db.collection.updateMany({},
{
$set: {
"School.$[].teacher.$[].class.totalStudents"/span>: null。
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/324689.html
標籤:
上一篇:查找集合中的區域變數不作業
