在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工作。更改了我的答案,以更好地表示这一点。在编写文档时维护属性列表非常适合我的用例。谢谢你的建议!