[英]Update single sub-document attribute with Mongoose
我有一個帶有一系列子文檔的Mongo Collection,如下所示:
var aliasSchema = new Schema({
name: String,
alias_type: String,
isCommonName: { type: Boolean, default: false }
});
var parentSchema = new Schema(
{
name: String,
description: { type: String, required: false },
observation: { type: String, required: false },
indexed: { type: Boolean, default: true },
aliases: [aliasSchema],
}
我想更新一個別名對象的alias_type
。
我嘗試過使用兩種方法與貓鼬
1。
Parent.findOneAndUpdate({'aliases.name': aliasName },{$set: {"aliases.$.alias_type": req.body.aliasForm.alias_type}}, {new: true}, function(err, aliasDoc) {
if (err) {
res.status(400)
res.send(err);
}
console.log(aliasDoc);
res.status(200);
res.send(aliasDoc);
});
和
2。
Parent.update({'aliases.name': aliasName },{$set: {"aliases.$.alias_type": req.body.aliasForm.alias_type}}, function(err, aliasDoc) {
if (err) {
res.status(400)
res.send(err);
}
console.log(aliasDoc);
res.status(200);
res.send(aliasDoc);
});
但是,我仍然無法更新alias_type。 當我像這樣在mongo控制台中運行選項(1)時,它起作用了:
db.getCollection('parent').findOneAndUpdate({'aliases.name': 'SomeValue' },{$set:{'aliases.$.alias_type': 'AnotherValue'}})
誰能告訴我我在做什么錯?
我在調用參數之一時犯了一個錯誤。 我在問題中發布的update()
技術有效:)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.