2015-06-04 80 views
0

我在mondoDB其結構如下圖所示Java的:一個文檔內指數JSON數組MongoDB中

"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」a nd「y」表示該筆劃。我有一個當前的實現,其中我有一個循環來遍歷卡對象列表,然後一個內部循環遍歷該卡內部的筆劃列表,以及另一個內部循環遍歷該筆畫上的點,然後查找x和y的最小值。我想知道是否有其他方法可以將數據庫編入索引以直接獲取該特定對象或只是最小值。

回答

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字節碼。

相關問題