2016-01-25 54 views
0

比方說,我有一個DocumentDB收集填充了具有這種形狀的文件:獲取所有根性質

[{ "Name": "KT", "Dob": "5/25/1990", "Children": [], "IsMale": false }, 
{ "Name": "Chris", "Dob": "10/1/1980", "Children": [], "IsMale": true }] 

現在讓我們說我不上面的文檔的結構。

有一個查詢我可以寫,將返回我的屬性名稱("Name""Dob""Children""IsMale")的一個獨特的列表?

換句話說,是否有辦法嗅探這些文檔的模式?

回答

1

這可能是this question的副本。無論如何,那裏的答案可能會給你一些想法。

tl; dr;唯一的方法就是閱讀所有的文檔。您可以將它們全部拖回到您的機器中,或者您可以在存儲過程中讀取它們,並只將計算出的模式發送回您的機器。

0

您需要一個動態的ORM or ODM Azure DocumentDB像Slazure這樣做。示例如下:

using SysSurge.Slazure.AzureDocumentDB.Linq; 
using SysSurge.Slazure.Core; 
using SysSurge.Slazure.Core.Linq.QueryParser; 

public void EnumProperties() 
{ 
    // Get a reference to the collection 
    dynamic storage = new QueryableStorage<DynDocument>("URL=https://contoso.documents.azure.com:443/;DBID=DDBExample;TOKEN=VZ+qKPAkl9TtX=="); 
    QueryableCollection<DynDocument> collection = storage.TestCustomers; 

    // Build collection query 
    var queryResult = collection.Where("SignedUpForNewsletter = true and Age < 22"); 

    foreach (DynDocument document in queryResult) 
    { 
     foreach (KeyValuePair<string, IDynProperty> keyValuePair in document) 
     { 
      Console.WriteLine(keyValuePair.Key); 
     } 
    } 
}