在模式 Mongoose 中更新模式
Updating a schema within a schema Mongoose
一直在尝试更新我文档中嵌套数组中的字段。
例如此处的示例架构..
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中创建的。更多的是为了测试将它们分开。
如果我把这个问题格式化错了,我很抱歉,显然我试图从我的真实事物中做一个模拟模式集。我认为我的查询比设置更重要。
谢谢!
parentSchema
这次更新就够了
parentSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )
一直在尝试更新我文档中嵌套数组中的字段。
例如此处的示例架构..
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中创建的。更多的是为了测试将它们分开。
如果我把这个问题格式化错了,我很抱歉,显然我试图从我的真实事物中做一个模拟模式集。我认为我的查询比设置更重要。
谢谢!
parentSchema
这次更新就够了
parentSchema.updateOne( { 'nested.foo2' : 'string-that-matches' }, { $set: { 'nested.$.bar2' : 'new-string-for-bar2' } } )