我已經用Google搜索了一下,試過了這個,看起來好像不可能。也許(希望)有人知道更好:D如何在Cloudant查詢結果中省略嵌套對象中的字段?
因此,我有一個運行在Bluemix上的Cloudant數據庫,我都很新。 查詢,索引,視圖 ...在這裏掙扎了一下,但到目前爲止,我可以成功檢索文檔 - 在我的情況下通過timestamp
過濾。現在我只想讓輸出更便利。
在我的數據庫中,我有文件結構如下所示:
{
"_id": "0048160a463a73faaa6c90f5af027772",
"_rev": "1-ff6255309f1b873a4e482310843a8a15",
"timestamp": 1496275536932.6602,
"results": {
"lines": {
"S1": [
{
"needed_key": "foo",
"not_needed_key": 1
}
],
"S2": [
{
"needed_key": "bar",
"not_needed_key": 1
},
{
"needed_key": "foo_bar",
"not_needed_key": 1
}
],
...
}
},
"station": "5002270",
"another_not_needed_key": "something"
}
縮短,我Cloudant選擇看起來有點像這樣:
{
"selector": {
"$and": [{
"timestamp": {
"$gte": from,
"$lt": to
},
"results.lines": {
"$ne": {}
}
]},
"fields": [
"_id",
"timestamp",
"station",
"results"
],
...
}
查看如何"another_not_needed_key"
不fields
,因爲,我不需要這些信息。現在我想爲lines
陣列的對象中的不需要的字段做同樣的事情。
我讀的地方,對於數組,像
"results.lines.S1.[].needed_key"
爲selector
是可能的,雖然我也不知道我是否有任何結果的檢測這一點。總之:
問題:
- 將/應爲
fields
上述工作,過?即應該只輸出"S1"
數組嵌套對象中的任何"needed_key"
?還沒有成功呢。 - 可以概括一下
"S1"
嗎?與陣列中所有對象的[]
一樣,我想要解決lines
中的所有密鑰。因爲:有些可能包含"S1"
作爲關鍵字,其他則不包含。總的來說,這裏有七個可能的密鑰,可變的組合。
如果有什麼不清楚的地方,我很樂意提供更多信息。提前致謝!
非常感謝。我確實看了一下搜索索引,但只是一個很快的搜索索引,在我認定它太複雜之前; D。我試過你提出的json類型選擇器;因爲我只有7個可能的鍵,列出它們都是可以忍受的。然而,處理數組中的每一個項目都是不可行的,所以......我最終離開了查詢和輸出,讓我的API執行所有過濾工作。 –
也適用:D祝你好運。 – brobes