我们有一个简单的例子,我们希望直接从API提供程序(Github)获取JSON文档并将它们存储在DocumentDB Collection中。不幸的是,文档碰巧有一个“id”字段,这是一个数字,因此在尝试创建文档时会导致错误。
这一定是一种常见的情况,我发现了一个似乎表明“最糟糕”的帖子。但是,我正在寻找确认。我抱有一点希望,我不必为ID字段编写自定义处理,它会在每次存储和检索操作时修改所有文档,只是为了使它们与DocumentDB兼容。
答案 0 :(得分:1)
就像我在评论中提到的那样,我不确定主要问题是什么,但DocumentDB的id
属性是一个字符串。在保存到DocumentDB之前,您需要将GitHub内容的数字id属性转换为字符串。或者,您可以创建自己的数字属性(id
除外)以维护数值数据类型,以便将来查询。
您无法在集合本身内将id
的数据类型从字符串更改为数字。
答案 1 :(得分:0)
感谢您的反馈。我认为我提供的文章中的建议比实现逻辑更具吸引力,以改变任何恰好命名的字段的类型" id"并且恰好不是用于处理DocumentDB的字符串。我一般都是NoSQL的新手,但是我可以看到将DocumentDB上的文件封装到外部对象中的其他好处也是基于它们的类型名称。因此,如果我正在使用存储库,那么JSON的形状就是这样:
{
"repository": {
"id": "Id from github",
"foo": "bar"
},
"id" : "document-db-id"
}
在我的应用程序中使用这种包装方法作为惯例对我来说很有意义。我只需要添加"类型"我的ApplicationDB操作应用程序中的参数。
我也可以看到一些缺点。例如,它可能需要在DocumentDB和SDK之间的任何实体框架之间有一个层,它为API提供数据模型。
如果任何人有任何关于包装文件的经验或建议,请输入"输入"任何类型的NOSQL容器,都会受到欢迎。