【问题标题】:Java: Index json array inside a document in mongoDbJava:mongoDb中文档内的索引json数组
【发布时间】:2015-06-04 18:55:52
【问题描述】:

我在mondoDB中有一组文档,结构如下图

    "id":"documentId"
    {
      "listOfcards":
      [
         {
          "cardId":1,
          "drawingpath":
            [
              {
                 "strokeId":1,
                 "strokePoints":
                 [
                    {
                       "x":100
                       "y":100
                    },
                    {
                       "x":50
                       "y":10
                    }
                 ]
              },
              {
                 "strokeId":2,
                 "strokePoints":
                 [
                      ...
                 ]
              }

            ]
          },
          {
             "cardId":2,
             ...
          }
      ]
   }

我正在编写一个 Java 程序来索引这个文档。我有以下输入

  1. documentId
  2. cardId
  3. strokeId

如果假设我的输入是 ("documentId",1,1),我想要以下 JSON 对象

"strokePoints":
[
   {
      "x":100
      "y":100
   },
   {
      "x":50
      "y":10
   }      
]

特别是,对于给定的文档、给定的 cardID 和给定的笔画 ID,我想获得该笔画的“x”和“y”的最小值。我有一个当前的实现,其中我有一个循环来遍历卡片对象的列表,然后有一个内部循环来遍历该卡片内的笔画列表,另一个内部循环来遍历该笔画上的点,然后找到x 和 y 的最小值。我想知道是否有任何其他方法可以索引数据库以直接获取该特定对象或仅获取最小值。

【问题讨论】:

    标签: java json mongodb


    【解决方案1】:

    虽然它们可能不是进行计算的工具(最小 x 和 y),但绝对值得看看这个 JSON 到 JSON 转换器https://github.com/bazaarvoice/jolt。该工具可以帮助您将 MongoDB 文档转换为更适合使用的内容。

    第二种方法可能是使用动态 JVM 语言(如 Groovy)来处理 JSON。它们对遍历 JSON 有更好的支持(请参阅 http://www.groovy-lang.org/json.html),如果是 Groovy,它会直接编译成 Java 字节码。

    【讨论】:

      猜你喜欢
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-31
      • 2017-02-01
      • 2012-11-14
      • 2017-01-11
      • 1970-01-01
      相关资源
      最近更新 更多