Java:mongoDb中文档中的索引json数组

时间:2015-06-04 18:55:53

标签: java json mongodb

我在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
  4. 如果假设我的输入是(" documentId" 1,1),我想要以下JSON对象

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

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

1 个答案:

答案 0 :(得分:0)

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

第二种方法可能是使用动态JVM语言(如Groovy)来进行JSON操作。它们对遍历JSON有更好的支持(参见http://www.groovy-lang.org/json.html),在Groovy的情况下,它直接编译成Java字节码。