如何处理属性存储为不同类型的文档
本文关键字:同类型 文档 存储 属性 何处理 处理 | 更新日期: 2023-09-27 18:13:19
我使用c#模型映射到我的mongo文档。其中一个模型属性是
public List<string> genres = new List<string>();
在大多数情况下,这映射为文档以以下方式存储类型…
"genres" : [
"rock",
"rockabilly",
"punk"
]
然而,在某种程度上,类型被存储为一个普通数组(没有方括号)…
"genres" : {
"1" : "rock"
}
这会导致驱动抛出异常…
Expected element name to be '_t', not '1'
处理这个问题的最好方法是什么?我可以在文档样式到达模型之前调整它吗?我可以将其视为空,然后在更新时重写它吗?我是否应该清理我的数据并使其保持一致?
它不是一个普通数组,它是一个嵌入式文档,驱动程序不知道是哪种类型。你一定要清理你的数据,使之一致。
如果你不能,下一个最好的办法是创建一个与旧格式匹配的不同的数据结构,并使用它来转换为新格式。