我有以下F#代码尝试从我的documentdb数据库中获取用户文档,但它不起作用。是否有其他人使用ReadDocumentAsync方法遇到问题?我能够使用CreateDocumentQuery方法成功查询我的用户文档。任何帮助是极大的赞赏。我使用我的数据库和集合ID代替代码段中的空字符串
let getUserDatabaseModel (documentClient : DocumentClient) originiatorId =
async {
let databaseId = ""
let collectionId = ""
let documentUri = UriFactory.CreateDocumentUri(databaseId, collectionId, originiatorId)
let! userDatabaseModel =
documentClient.ReadDocumentAsync(documentUri)
|> Async.AwaitTask
return userDatabaseModel
}
|> Async.RunSynchronously
更新 如果我使用_rid而不是id,我会得到数据。澄清ReadDocumentAsync似乎使用_rid工作,但在使用id时抛出以下错误。
mscorlib: Exception has been thrown by the target of an invocation.
FSharp.Core: One or more errors occurred. Microsoft.Azure.Documents.Client:
The value 'left blank intentionally' specified for
query '$resolveFor' is invalid
我在documentdb github问题页面上发布了一段时间,我遇到了与ReplaceDocumentAsync有关的问题。
https://github.com/Azure/azure-documentdb-dotnet/issues/113
我并不太关心修复,因为有UpsertDocumentAsync。这个问题似乎有关系,或者他们的关系可能只是我!无法弄清楚我做错了什么。
答案 0 :(得分:1)
CreateDocumentUri需要一致的id,数据库,集合和文档的所有ID或所有_rid