Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Azure DocumentDB中,如何获取集合中所有属性的列表?_Azure_Azure Cosmosdb - Fatal编程技术网

在Azure DocumentDB中,如何获取集合中所有属性的列表?

在Azure DocumentDB中,如何获取集合中所有属性的列表?,azure,azure-cosmosdb,Azure,Azure Cosmosdb,我希望能够提供集合中所有文档的所有属性的列表 我能想到的最好的方法是查询所有文档,然后在客户端中构建列表,但这感觉是错误的。唯一的方法是读取所有文档。但是,如果您担心带宽,那么您可以在只返回属性列表的存储过程中完成 如果您采用这种方法,我建议您从countDocuments存储过程开始,并准备好根据需要多次调用,直到继续返回空且没有429个错误。。。或者使用documentdb utils,它会为您解决这个问题 或者,我可以在这里给你一个完整的例子。请告诉我 另一种方法是在编写文档时维护属性列表

我希望能够提供集合中所有文档的所有属性的列表


我能想到的最好的方法是查询所有文档,然后在客户端中构建列表,但这感觉是错误的。

唯一的方法是读取所有文档。但是,如果您担心带宽,那么您可以在只返回属性列表的存储过程中完成

如果您采用这种方法,我建议您从countDocuments存储过程开始,并准备好根据需要多次调用,直到继续返回空且没有429个错误。。。或者使用documentdb utils,它会为您解决这个问题

或者,我可以在这里给你一个完整的例子。请告诉我


另一种方法是在编写文档时维护属性列表。如果您经常需要此列表,则最好使用此列表。

您可以在集合中存储具有任何类型结构的文档,它们可能都不同。 在集合中,不限制您存储来自同一“架构”的所有对象

因此,DocumentDB API或SDK并不真正支持获取集合中的所有可用属性,您可以阅读整个集合,或者依赖于创建对象时所做的某种约定。

您可以使用它。下面的示例列出了给定文档集的所有属性名称:

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

public void ShowPropertyNames()
{
    // Get a reference to the TestCstomers 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);
        }
    }
}
使用SysSurge.Slazure.AzureDocumentDB.Linq;
使用SysSurge.Slazure.Core;
使用SysSurge.Slazure.Core.Linq.QueryParser;
公共无效ShowPropertyNames()
{
//获取对TestCstomers集合的引用
动态存储=新的QueryableStorage(“URL=https://contoso.documents.azure.com:443/;DBID=DDBExample;TOKEN=VZ+qKPAkl9TtX==”;
QueryableCollection=storage.TestCustomers;
//生成集合查询
var queryResult=collection.Where(“SignedUpForNewsletter=true且年龄<22”);
foreach(queryResult中的动态文档)
{
foreach(文档中的KeyValuePair KeyValuePair)
{
Console.WriteLine(keyValuePair.Key);
}
}
}

您希望答案使用哪种编程语言?C#,PowerShell?我的答案中只提供了一个更深层次的代码示例。大多数答案都有代码示例。有些甚至在JSFIDLE工作。更改了我的答案,以更好地表示这一点。在编写文档时维护属性列表非常适合我的用例。谢谢你的建议!