2016-11-18 107 views
0

的子記錄查詢爲一個文件:marklogic上的NodeJS JSON文檔

{ 
    a: [ 
    { b: 1, c: 2 }, 
    { b: 3, c: 2 }, 
    { b: 1, c: 4 }, 
    ] 
} 

我想有文件匹配,如果在相同的子對象(A·B = 1和交流轉換器= 2)。

這裏,僅一個[0]匹配(A·B = 1和交流轉換器= 2)

對於文檔:

{ 
    a: [ 
    { b: 3, c: 2 }, 
    { b: 1, c: 4 }, 
    ] 
} 

無匹配必須是的結果。

回答

1

我還沒有在Node.js客戶端API中完成這項工作,但總體而言,我認爲您需要在cts:element-query中包裝cts:near-query()。對於near-query,請指定1的距離並使用「ordered」選項。我不知道有關語法,但是這應該讓你關閉:

qb.scope(
    'a', 
    qb.near(
    qb.value('b', 1), 
    qb.value('c', 2), 
    1, 
    qb.ordered(true) 
) 
) 

請注意,你需要一些指標,從而開啓unfiltered queries,以提供準確的結果。對於接近查詢的工作,我打開「元素位置」和「元素字位置」。