【发布时间】:2013-02-07 14:47:09
【问题描述】:
我目前有一个 API,它接受 JSON 文件(它们是 JSON 序列化对象,包含一些用户事务数据)并将其存储到服务器中。每个这样的 JSON 文件都有一个唯一的全局 id 和一个与之关联的唯一用户。然后,用户应该能够查询与他关联的所有 JSON 文件,并生成一堆在这些文件之上计算的聚合结果。
**编辑:
需要存储的典型 JSON 文件如下所示:
[{"sequenceNumber":125435,"currencyCode":"INR","vatRegistrationNumber":"10868758650","receiptNumber":{"value":"1E466GDX5X2C"},"retailTransaction":[{"otherAttributes" :{},"lineItem":[{"sequenceNumber":1000,"otherAttributes":{},"sale":{"otherAttributes":{},"description":"Samsung Galaxy S3","unitCostPrice":{ "quantity":1,"value":35000},"discountAmount":{"value":2500,"currency":"INR"},"itemSubType":"SmartPhone"}},{"sequenceNumber":1000, "otherAttributes":{},"customerOrderForPickup":{"otherAttributes":{},"description":"iPhone5","unitCostPrice":{"quantity":1,"value":55000},"discountAmount":{ "value":5000,"currency":"INR"},"itemSubType":"SmartPhone"}}],"total":[{"value":35000,"type":"TransactionGrossAmount","otherAttributes": {}}],"grandTotal":90000.0,"reason":"Delivery"},null]}]
上面的 JSON 是一个复杂对象的序列化版本,它包含单个或其他类的对象数组作为属性。所以“receiptNumber”是 JSON 文件的通用 ID。
要回答 Sammaye 的问题,我需要查询诸如 customerOrderForPickup 的数量和价值或交易的总金额之类的东西,并作为各种此类交易 JSON 的集合 **
我想对如何进行一些建议: 1)将这些JSON文件存储在服务器上,即文件系统 2)我应该使用什么样的数据库来查询这些结构如此复杂的JSON文件
我的研究带来了几种可能性: 1)使用MongoDB数据库存储对象的JSON代表,通过数据库查询。 JSON 文件将如何存储?将事务 JSON 存储在 MongoDB 数据库中的最佳方式是什么? 2) 将包含唯一全局 ID、用户 ID 和服务器上 JSON 文件地址的 SQL 数据库与这些文件上的聚合代码结合起来。我怀疑这是否可以缩放
如果有人对这个问题有任何见解,我会很高兴。谢谢。
【问题讨论】:
-
mongo 的好处是您不必将 json blob 视为文件。它只是您的 mongodb 中的数据。因此,您插入它并查询它,并且可以根据需要进行聚合。这可能是满足您需求的最直接的方法。
-
您想对 JSON 字符串执行哪种查询?
标签: sql json mongodb filesystems webserver