2015-06-19 240 views
0

我有testa couchbase 4服務器,用於存儲傳感器測量數據。Couchbase範圍查詢

我有以下看法:

function (doc, meta) { 
    if (doc.aks) { 
    emit([doc.aks, doc.timestamp], { 
     value: doc.value, 
     status: doc.status 
    }); 
    } 
} 

下面的示例文件:

{ 
    "timestamp": 1199180981, 
    "value": 0, 
    "status": 2147483650, 
    "aks": "BN028:H23:VS:001:Zustand" 
} 

我現在嘗試下面的查詢,以這樣的觀點: 給我值的TIMERANGE單個傳感器。

/_view /時間軸陳舊=假& startkey = [ 「BN020:H03:ZW:102:MC_t_return」 12675419334] & endkey = [ 「BN020:H03:ZW:102:MC_t_return」 13675419334]

但是這不會導致任何結果。

我得到一個結果,如果我只是使用startkey =或endkey =但不是如果我同時使用。 我錯了什麼?

回答

0

確保您的存儲桶中的數據實際上落在您的範圍內。我使用了您的查看和查詢並收到了結果。您的示例文檔不在該範圍內,aks錯誤且時間戳太早。如果您添加範圍內的文檔,您應該收到它。這一個是下界的範圍:

{ 
    "timestamp": 12675419334, 
    "value": 0, 
    "status": 2147483650, 
    "aks": "BN020:H03:ZW:102:MC_t_return" 
} 
+0

我檢查這個allreay由未設置(開始|結束)鍵= – GreenRover

+0

我道歉,我張貼在我的答案不正確的文件,我只是與文檔編輯認爲代表您的查詢的下限。如果我的存儲桶只有您發佈的文檔作爲示例,那麼運行您的查詢將不會返回任何結果。將我的答案中的文檔添加到存儲桶中,然後在運行查詢時收到它。您的查看和查詢工作。你有什麼錯誤嗎?或者查詢是否成功?你可以運行一個小測試:運行沒有startKey或endKey的查詢,然後使用你得到的結果之一作爲startKey和endKey? – kruthar