从MongoDB.Driver迁移到Azure DocumentClient

时间:2018-09-03 09:16:24

标签: json.net azure-cosmosdb bson

我正在尝试重新实现一个使用Microsoft.Azure.Documents.Client.DocumentClient从Azure CosmosDB读取的类,以便我可以使用延续令牌功能。

但是,当我尝试检索数据时,出现以下错误:

  

将值\“ NWE2OGY5MzYzMmY0OGIlM2Ix \”转换为类型时出错   'MongoDB.Bson.ObjectId'

首先,这不是我们的id值,但我尝试实现一个hereObjectIdConverter,但随后开始出现此错误:

  

字符串应仅包含十六进制数字。

由于它尝试使用的值实际上并不对应于条目ID。

然后我将要尝试反序列化的实际对象放入JsonConverter中,然后将json加载到JObject中,这样我就可以看到要处理的内容。

结构与我期望的或在Robo 3T中看到的不匹配:

{{
  "$t": 3,
  "$v": {
    "_id": {
      "$t": 7,
      "$v": "ù62ô;Üöã±"
    },
    "Channel": {
      "$t": 2,
      "$v": "channel"
    },
    "TopicRoutingKey": {
      "$t": 18,
      "$v": 123,
      "$s": "123"
    },
    "SequenceNumber": {
      "$t": 18,
      "$v": 1,
      "$s": "1"
    },
    "CorrelationId": {
      "$t": 5,
      "$v": "00000006\u0003Ù\bÜ\"²f@\u085L+SæÝ"
    },
    "Message": {
      "$t": 2,
      "$v": "2gIUCJSAOBGMCv1eTLCAHKJ2QjhUx/iCtT5t0YsfS10JIsIJSAOQ=="
    }
  },
  "id": "NWE2OGY5MzmRjZjZlM2Ix",
  "_rid": "znt6AKAAAAAAAAA==",
  "_self": "dbs/znt6AA==/colls/znt6AK0j8AU=/docs/znt6AKAAAAAAAAA==/",
  "_etag": "\"3b02af0b-0000-0000-0000-5a68f9370000\"",
  "_attachments": "attachments/",
  "_ts": 1516828983
}}

我假设它们是类型/值元组,我可以看到我想要的数据在根$v:中,但是我不知道如何反序列化(缺少复制数据结构的方法)我自己,然后反序列化它,然后转换为我的实际数据结构(似乎没有必要)。

有人可以告诉我这是怎么回事吗?

0 个答案:

没有答案