0

一直在尝试更新我文档中嵌套数组中的字段。

例如这里的示例模式..

childSchema = new Schema ( {
foo2 : String,
bar2 : String,
foobar : String
) };

在此架构内

parentSchema = new Schema ( {
foo1 : String,
bar1 : String,
nested : [childSchema]
)};

如果我想根据 foo2 匹配的字符串更新 bar2 (childSchema),我该怎么做?

我尝试了以下方法,

parentSchema.childSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )

我通常会收到错误

TypeError: Cannot read property 'updateOne' of undefined

我以前没有这样的 childSchema,它只是在 parentSchema 中制作的。它更多地用于测试将它们分离出来。

如果我错误地格式化了这个问题,我很抱歉,显然我试图从我的真实事物中做一个模拟模式集。我认为我的查询比设置更多。

谢谢!

4

1 回答 1

1

parentSchema这次更新就够了

parentSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )
于 2021-10-07T06:21:06.833 回答