【发布时间】:2018-09-30 10:02:47
【问题描述】:
我编写了一个简短的 azure 函数来简单地从 CosmosDB 更改提要触发器中获取数据。
不过,它似乎返回某种形式的编码数据。
例如
{
"_id" : ObjectId("5ad8db107dfa95101430ab94"),
"id" : "task123",
"type" : "genera123l",
"information" : "some task"
}
如果上面的文档是在我的 cosmos db 中创建的,
public static void Run(IReadOnlyList<Document> documents, TraceWriter log)
{
if (documents != null && documents.Count > 0)
{
log.Info("Documents modified " + documents.Count);
log.Info("First document Id " + documents[0].Id);
}
}
上面的代码会打印出来
2018-04-19T19:28:23.899 [Info] Documents modified 1
2018-04-19T19:28:23.899 [Info] First document Id NWFkOGRiMTA3ZGZhOTUxMDE0MzBhYjk0
而不是
2018-04-19T19:28:23.899 [Info] Documents modified 1
2018-04-19T19:28:23.899 [Info] First document Id task123
这是预期的输出。 我在这里缺少某种配置吗?
看起来没有 CosmosDB 或 Azure Function App 的文档 解决这个问题:(
谢谢
【问题讨论】:
-
似乎Id值来自'_id',而不是文档的'id'参数。 base64 中的解码为 _id 创建了正确的值。似乎它被读取为 ObjectId,
标签: azure azure-functions azure-cosmosdb