Mongodb Mongoose:如何正确更新嵌套文档
我试图更新嵌套文档中的特定值。假设键值对已经存在: 模式:Mongodb Mongoose:如何正确更新嵌套文档,mongodb,mongoose,Mongodb,Mongoose,我试图更新嵌套文档中的特定值。假设键值对已经存在: 模式: Child = mongoose.Schema({ key1 : String, key2 : String, Parent = mongoose.Schema({ sample:{ key1 : String, key2 : [Child], 父文档可能包含多个带有“parent.key2”的嵌套文档,假设我知道嵌套文档的特定_id值。我尝试了.save/.update
Child = mongoose.Schema({
key1 : String,
key2 : String,
Parent = mongoose.Schema({
sample:{
key1 : String,
key2 : [Child],
父文档可能包含多个带有“parent.key2”的嵌套文档,假设我知道嵌套文档的特定_id值。我尝试了.save/.update/.findby的多种变体。。。。没有成功
我现在谈以下几点:
sample.update(
{_id : 'Known-ID-of-Nested-Document'},
{$set : {key1 : value}},
{upsert: true},
function(err){...}
上述方法不起作用-我做错了什么
编辑:我使用了“findOneAndUpdate”方法,如下所示:
var query = {<dataPath>._id : 'Known-ID-of-Nested-Document'}
var update = {<dataPath>.$.Key1 : 'newValue'}
var options = {upsert = true}
sample.findOneAndUpdate(query, update, options).......
原来我需要路径和$来查找嵌套文档,例如:
parent.child.$.<key-to-amend>
parent.child.$。
希望这可以帮助其他人。您正在调用的
update
示例是什么?示例类似于:=mongoose.model('dbname',Parent)已修复,有关详细信息,请参阅编辑
parent.child.$.<key-to-amend>