2014-02-24 211 views
8

說我有這個JSON(樣本 - 一個真實的例子可以在apple itunes rss feed找到)存儲在RethinkDB表名爲「測試」:查詢嵌套對象的數組

{ 
    "feed": { 
     "entry": [ 
      { 
       "title": { 
        "label": "Some super duper app" 
       }, 
       "summary": { 
        "label": "Bla bla bla..." 
       } 
      }, 
      { 
       "title": { 
        "label": "Another awsome app" 
       }, 
       "summary": { 
        "label": "Lorem ipsum blabla..." 
       } 
      } 
     ] 
    } 
} 

我怎麼會寫ReQL在JavaScript中查詢以獲取所有條目的摘要entry)其中標題包含字符串「xyz」?我期望查詢結果返回匹配的條目對象的數組,而不是匹配數組的數據源

回答

11

如果我正確理解你想要做什麼,這個查詢應該是你在找什麼:

r.table("feeds").concatMap(function(doc) { 
    return doc("feed")("entry") 
}).filter(function(entry) { 
    return entry("title")("label").match("xyz") 
}) 
+0

測試工作。謝謝@neumino! – codeclash

+0

@ pneumino,如果在頂層有「id」,如: {id:1,feed:....}如何在匹配這個文本後得到這個'id'?例如:獲取feed-> entry-> title->標籤匹配「xyz」的文檔的所有id?反正有這樣做嗎? –

+0

你可以用'(「id」)'或map(函數(doc){return doc(「id」)})來連鎖@ – neumino