[英]How can I update a Mongoose subdocument in an instance method?
我有一個Mongoose文檔,其中包含一系列子文檔,如下所示:
var RegionSchema = new Schema({
"metadata": {
"regionType": String,
"name": String,
"children": [{
"name": String,
"childType": String,
"id": Schema.ObjectId
}],
"parent": Schema.ObjectId
},
"data": [DataContainer]
});
在DataContainer
架構中,我想創建一個實例方法來更新其內部的數據。
為了清楚起見 ,我希望能夠查找一個Region
,在data
數組中找到一個DataContainer
並調用諸如dataCont.update()
類的東西,其中DataContainer
實例可以執行this.save()
。 這可能嗎?
干
this.save(function(err, saved) {
console.log(saved)
callback(err, saved);
});
在DataContainer
實例方法內部打印出undefined
。 回調被擊中。
如果data
屬性是子文檔,則可以輕松地使用populate
並更新它:
Region.findOne({ _id: regionId })
.populate('data')
.exec(function (err, region) {
// ...
var data = region.data, // data container
dataItem = data[0];
dataItem.property = 'some value';
dataItem.save(function (err, item) {
//...
});
// or
dataItem.update({ $set: { property: 'some value' }}, function (err, item) {
// ...
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.