【发布时间】:2014-08-25 16:57:38
【问题描述】:
我刚开始玩 Azure DocumentDB,我的兴奋变成了困惑。这件事很奇怪。似乎所有内容(数据库、集合、文档)都不需要通过其 ID 访问,而是通过其“SelfLink”访问。例如:
我创建了一个数据库:
public void CreateDatabase()
{
using (var client = new DocumentClient(new Uri(endpoint), authKey))
{
Database db = new Database()
{
Id = "TestDB",
};
client.CreateDatabaseAsync(db).Wait();
}
}
然后以后某个时候我想创建一个收藏:
public void CreateCollection()
{
using (var client = new DocumentClient(new Uri(endpoint), authKey))
{
DocumentCollection collection = new DocumentCollection()
{
Id = "TestCollection",
};
client.CreateDocumentCollectionAsync(databaseLink: "???", documentCollection: collection).Wait();
}
}
当我真正希望给它的是我的数据库 ID 时,api 想要一个“数据库链接”。我手边没有'databaseLink'。 DocumentDB 真的希望我每次想要做任何事情时都拉下所有数据库的列表并在其中搜索 databaseLink 吗?
这个问题一直存在。如果没有集合的“链接”,我无法将文档保存到集合中。
public void CreateDocument()
{
using (var client = new DocumentClient(new Uri(endpoint), authKey))
{
client.CreateDocumentAsync(documentCollectionLink: "???", document: new { Name = "TestName" }).Wait();
}
}
因此,要保存文档,我需要集合的链接。要获得收藏链接,我需要数据库链接。要获得数据库链接,我必须拉下我帐户中所有数据库的列表并对其进行筛选。然后我必须使用我发现的那个数据库链接来拉下该数据库中的集合列表,然后我必须筛选以查找我想要的集合的链接。这似乎不对。
我错过了什么吗?我不明白如何使用它吗?当 DocumentDB 坚持使用自己的链接方案来识别所有内容时,为什么我要为我的所有资源分配 ID?我的问题是“如何通过 ID 访问 DocumentDB 资源?”
【问题讨论】:
-
如果您希望看到该功能的实现,请在feedback.azure.com/forums/263030-documentdb 上投票,这将有助于我们优先考虑用户提出的问题。
标签: azure azure-cosmosdb