TypeScript架构中的Dynamoose嵌套映射/数组
我正在尝试为以下示例创建架构:TypeScript架构中的Dynamoose嵌套映射/数组,typescript,dynamoose,Typescript,Dynamoose,我正在尝试为以下示例创建架构: { "foods": [ { "fruits": [{ "apple": { "color": "red", "shape": "round"
{
"foods": [
{
"fruits": [{
"apple": {
"color": "red",
"shape": "round"
}
}]
}
]
}
我最初试图做下面的结构,这在技术上是正确的,应该可以工作,但由于在中发现的错误而失败
然而,它似乎不起作用。正在获取类型错误:无法读取未定义的属性“toLowerCase”。由于嵌套数组或对象,出现小写错误
我还看到TypeMismatch:Expected foods.0.fruits的类型是object,而不是find type object。
当我试图更改模式时出现了后者,我认为可能是这样,但这不是问题所在
- 这是使用版本2.7.0
const appleSchema = new dynamoose.Schema({
apple: {
type: Object,
schema: {
color: String,
shape: String,
},
},
});
然后在原始版本中:
fruits: {
type: Array,
schema: [appleSchema],
},
解决方案:将嵌套模式提取到它自己的模式中,并引用原始模式中的模式
const appleSchema = new dynamoose.Schema({
apple: {
type: Object,
schema: {
color: String,
shape: String,
},
},
});
然后在原始版本中:
fruits: {
type: Array,
schema: [appleSchema],
},
另一个选项是将您的架构更改为以下内容:
export const FoodsSchema = new dynamoose.Schema({
foods: {
type: Array,
schema: [{
type: Object,
schema: {
fruits: {
type: Array,
schema: [{
type: Object,
schema: {
apple: {
type: Object,
schema: {
color: String,
shape: String,
},
},
],
},
},
}],
},
});
(希望这是正确的)
最初在水果
模式
属性中,您有一个数组,然后苹果
:
schema: [
apple: {
我可能错了,但我甚至不认为这是有效的JavaScript
关键是,您可以确定地在1个模式中执行您想要执行的操作。您还可以将其分解为更小的对象,而不是模式,以使其更简单
然而,正如在另一个答案中提到的,将其分解为模式也同样有效
实现这一点有很多不同的方法。另一个选择是将您的模式更改为以下内容:
export const FoodsSchema = new dynamoose.Schema({
foods: {
type: Array,
schema: [{
type: Object,
schema: {
fruits: {
type: Array,
schema: [{
type: Object,
schema: {
apple: {
type: Object,
schema: {
color: String,
shape: String,
},
},
],
},
},
}],
},
});
(希望这是正确的)
最初在水果
模式
属性中,您有一个数组,然后苹果
:
schema: [
apple: {
我可能错了,但我甚至不认为这是有效的JavaScript
关键是,您可以确定地在1个模式中执行您想要执行的操作。您还可以将其分解为更小的对象,而不是模式,以使其更简单
然而,正如在另一个答案中提到的,将其分解为模式也同样有效
有很多不同的方法来实现这一点。如果我上面列出的代码在最新版本上仍然产生错误,请针对提交错误,以便我可以在某个时候修复这些错误。是的,这是我在删除特定于工作的详细信息时出现的语法错误。我在原来的问题中已经解决了这个问题。感谢您指出。如果我上面列出的代码在最新版本上仍然产生错误,请针对提交错误,以便我可以在某个时候修复这些错误。是的,这是我在删除特定于工作的详细信息时出现的语法错误。我在原来的问题中已经解决了这个问题。谢谢你指出这一点。