我可以使用MongoDB构建查找JSON => JSON?
我考虑为WebAPI方法执行的某些计算构建(永久)缓存。请求和响应是对象结构(通过转换为JSON或从JSON转换而来)。
由于MongoDB是一个documentDB,因此价值部分似乎很合适。我关心关键部分。
请求可能具有可能500字节的JSON表示,值可能是1000字节。
可能有数百万个缓存条目。
在C#中思考我会寻找像基于磁盘的词典。由于分发(集群)和调试选项(更容易分析内容),我倾向于像MongoDB这样更复杂的解决方案。
我确信有更快或更专业的解决方案只适用于带有json密钥的基于磁盘的字典,建议欢迎。
但我对MongoDB的适用性感兴趣(例如show stoppers)。
答案 0 :(得分:1)
MongoDB可以做到这一点。您可以在包含子文档的字段上创建索引。当您搜索的对象与该子文档完全匹配时,查询将返回文档。
但是,请记住,MongoDB存储的不是JSON而是BSON("二进制JSON")。尽管这些在语义上非常相似,以至于许多驱动程序和默认shell透明地将它转换为JSON,但是在可用的数据类型方面存在一些细微差别。
例如,虽然JSON具有通用"数字"在前面和小数点后具有无限数量的基数为10的类型,BSON具有32位和64位整数类型以及64位浮点类型。较大的值可以存储为二进制字符串,这是一种在JSON中没有对应字符的类型。
当你正在寻找一个真实的" JSON文档数据库CouchDB可能是一个选项。
答案 1 :(得分:0)
你看过Couchbase了吗?它本地存储JSON文档和outperforms MongoDB。它还有C#支持:http://docs.couchbase.com/couchbase-sdk-net-1.2/
您可以为传入的JSON生成摘要签名,以便在Couchbase中创建密钥,然后获取相关的JSON文档。