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>