2014-10-31 73 views
3

我試圖創建一個簡單的DocumentDb存儲過程以更好地理解其概念。在這個例子中,我試圖返回所有「女性」用戶。我是否需要關注自己是否返回一個匹配的文檔或多個文檔?簡單的DocumentDb存儲過程

這裏是我的用戶對象是什麼樣子:

{ 
    "id": "e85ee3d7-44a5-4250-a116-686e1c2a10f5" 
    "firstName": "Jane", 
    "lastName": "Doe", 
    "gender": "F" 
} 

這裏就是我的storedproc樣子至今:

function(gender) { 

    var context = getContext(); 
    var response = context.getResponse(); 
    var collection = context.getCollection(); 
    var collectionLink = collection.getSelfLink(); 

    var filterQuery = "SELECT * FROM c WHERE c.gender = '" + gender + "'"; 
    // Now what??? 
} 

我想返回所有的女性用戶。可能有一個或一萬名女性用戶。

我很感謝你對這個簡單的DocumentDb存儲過程的幫助。謝謝。

回答

5

你在正確的軌道上。

接下來的步驟是在集合上運行filterQuery,然後將查詢響應放入響應變量中。

例如:

function(gender) { 
    var context = getContext(); 
    var response = context.getResponse(); 
    var collection = context.getCollection(); 
    var collectionLink = collection.getSelfLink(); 

    var filterQuery = 'SELECT * FROM c WHERE c.gender = "' + gender + '"'; 

    collection.queryDocuments(collectionLink, filterQuery, {}, 
    function(err, documents) { 
     response.setBody(response.getBody() + JSON.stringify(documents)); 
    } 
); 
} 

你可以找到DocumentDB的網站上存儲過程的一些樣品和文件:http://azure.microsoft.com/en-us/documentation/articles/documentdb-programming/

+3

你想了解延續和評估continuationToken - 你的例子可能會返回部分結果集。 以下是帶有Procedures&Triggers JS代碼的MSDN示例解決方案的鏈接:https://code.msdn.microsoft.com/windowsazure/Azure-DocumentDB-NET-Code-6b3da8af – Toons33 2014-10-31 14:06:12

+0

感謝您提供持續令牌! – Sam 2014-10-31 15:02:45

+0

@ Toons33,同上感謝MSDN示例。我之前看過那個示例頁面,但因爲標題是「Azure DocumentDB .NET代碼示例」而被駁回,因此我不是用.NET編寫的。這次我終於注意到了「DocumentDB.Samples.ServerSideScripts」部分,包括[Count.js](https://code.msdn.microsoft.com/windowsazure/Azure-DocumentDB-NET-Code-6b3da8af/sourcecode?fileId = 134860&pathId = 1415025635)這個例子很好地說明了延續。 – shoover 2015-04-13 21:16:50

相關問題