2015-10-13 29 views
0

我的非託管三元組存儲在我的文檔中。當我退回文檔時使用從返回的文檔中刪除三元組

var doc = cts.doc('/document/location/doc.json'); 
doc; 

我得到我的文檔,附帶三元組。

{ 
    "name": "Place name", 
    "address": "Place address" 
    "triple": { 
     "subject": "/document/location/doc.json", 
     "predicate": "contains", 
     "object": "/locations/buildings/A000001.json" 
    }, 
    "triple": { 
     "subject": "/document/location/doc.json", 
     "predicate": "contains", 
     "object": "/locations/buildings/rooms/offices/A000003.json" 
    } 
} 

如何在沒有三元組的情況下返回文檔?我想將結果發送到我的中間層,而不會暴露太多的數據庫信息。

+1

什麼語言是什麼?你的對象有多個'triple'屬性,所以它是無效的。根據誰處理它,最有可能的一個'triple'屬性將被刪除/忽略。 –

+0

它不是一種語言,它是一個json對象。這就是MarkLogic數據庫如何將jdf文檔中的rdf三元組存儲起來。或者至少這是數據庫在請求連接了非託管三元組的文檔時如何返回json對象。 – MoreThanCarbon

+0

MarkLogic允許您使用JavaScript與數據庫交互。 cts.doc('/ document/location/doc.json')是您如何檢索存儲在數據庫中的文檔。 – MoreThanCarbon

回答

0

所以我想cts.doc返回一個對象,不一定是JSONObject。我猜想這是有道理的,因爲它有三個關鍵字的多個對象。所以,我只需要將對象解析爲一個JSONObject(它只保留第一個'triple'對象),然後我就可以擺脫'triple'對象。

var doc = cts.doc('/document/location/doc.json'); 
doc = JSON.parse(doc); 
delete doc.triple; 
doc; 

現在返回:

{ 
    "name": "Place name", 
    "address": "Place address" 
}