在Node.js Bot中阅读cosmosDb文档

时间:2019-02-01 22:01:59

标签: node.js botframework azure-cosmosdb

我将使用botbuilder v4 SDK构建的v4 bot设置为使用cosmosDb存储。 这是document,它解释了这个概念。

这是我的BOT从cosmosDb创建的示例文档。

{
    "id": "emulator*2fconversations*2f58ceae60-ac37-ef89ad70c779|livechat*2f",
    "realId": "emulator/conversations/58ceae60-ac37-ef89ad70c779|livechat/",
    "document": {
        "dialogStateKey": {
            "dialogStack": [
                {
                    "id": "who_are_you",
                    "state": {
                        "options": {},
                        "values": {
                            "instanceId": "d73-cc97-85fb-669e490c54fa"
                        },
                        "stepIndex": 0
                    }
                },
                {
                    "id": "name_prompt",
                    "state": {
                        "options": {
                            "prompt": "What is your name, human?"
                        },
                        "state": {}
                    }
                }
            ]
        }
    },
    "_rid": "CAAAAAAAAAA==",
    "_self": "",
    "_etag": "",
    "_attachments": "attachments/",
    "_ts": 1549230
}

我想在代码中回读上面的文档,以便可以查看dialogStack []以查看堆栈是否为空。

我可以使用任何API或NPM软件包与cosmosDb进行交互吗?

注意:对cosmosDB的所有写操作均由botframework管理。

1 个答案:

答案 0 :(得分:0)

Bot Builder SDK没有提供任何内容来对机器人状态执行临时查询。也就是说,您当然可以使用the standalone Cosmos DB npm package来查询存储的状态文档。

我只提醒您,存储的状态文档的结构属于内部实现细节,以后可能会更改。出于这个原因,我还建议您将长期特定于业务域的数据存储在bot状态之外。