Documentdb ReadDocumentAsync不起作用

时间:2017-05-15 20:32:46

标签: f# azure-cosmosdb

我有以下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。这个问题似乎有关系,或者他们的关系可能只是我!无法弄清楚我做错了什么。

1 个答案:

答案 0 :(得分:1)

CreateDocumentUri需要一致的id,数据库,集合和文档的所有ID或所有_rid