假设我有一个DocumentDB集合,其中填充了具有以下形状的文档:
[{ "Name": "KT", "Dob": "5/25/1990", "Children": [], "IsMale": false },
{ "Name": "Chris", "Dob": "10/1/1980", "Children": [], "IsMale": true }]
现在让我说我不是上述文件的结构。
我可以写一个查询,它会返回一个不同的属性名称列表("Name"
,"Dob"
,"Children"
,"IsMale"
)?
换句话说,有没有办法嗅出这些文件的架构?
答案 0 :(得分:1)
这可能与this question重复。无论如何,那里的答案可能会给你一些想法。
TL;博士;唯一的方法是阅读所有文档。您可以将它们全部拉回到您的机器上,或者您可以在存储过程中读取它们,并仅将计算出的架构发送回您的机器。
答案 1 :(得分: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);
}
}
}