gpt4 book ai didi

node.js - 将 Azure CosmosDB DocumentDB API 与 Graph API 结合使用

转载 作者:搜寻专家 更新时间:2023-11-01 00:29:07 37 4
gpt4 key购买 nike

我希望能够做什么:

  • 将无架构 JSON 保存到文档
  • 任意连接这些文档
  • 根据上述连接获取文档的递归树,例如:
{
"name": "Document 1",
"includes": [
{
"name": "Document 2.1"
"includes": [
{
"name": "Document 3",
"includes": []
}
]
},
{
"name": "Document 2.2",
"includes": []
}
]
}

我的设置的当前状态:

  • 使用 Graph (Gremlin) API 配置的 CosmosDB 实例
  • 可以通过 DocumentDB API 创建 (JSON) 文档
  • 可以通过Graph API创建文档的边
  • 使用 Node.js SDK

问题:

  1. 是否可以通过Graph API将JSON对象保存为顶点?它允许使用 g.addV('person').property('id', 'thomas').property('firstName', 'Thomas').property('age', 44).property('userid', 1) 创建顶点但类似 g.addV({ firstName: 'Thomas' })似乎不起作用。

  2. 如果我通过 DocumentDB API 添加文档并通过 Graph API 添加文档之间的边并遍历图表,则结果仅包括文档的 ID,而不包括其他属性。是否可以以某种方式填充文档?

遍历查询示例:

g.V('03e0576f-2ff7-6109-5ed5-237b43191354').repeat(out('includes')).until(not(out('includes'))).simplePath().dedup().tree().by('id')

此查询的结果:

[{
"03e0576f-2ff7-6109-5ed5-237b43191354": {
"key": "03e0576f-2ff7-6109-5ed5-237b43191354",
"value": {
"7fab4007-c80c-ba21-f5d3-8eb353ea3279": {
"key": "7fab4007-c80c-ba21-f5d3-8eb353ea3279",
"value": {
"eec55fbd-6900-130d-247f-fb437b093711": {
"key": "eec55fbd-6900-130d-247f-fb437b093711",
"value": {}
},
"cfd14a8c-1ac3-6cc3-e2a4-ac3f250478e1": {
"key": "cfd14a8c-1ac3-6cc3-e2a4-ac3f250478e1",
"value": {
"acac136a-3bd4-831c-df6e-e5b95e593b9a": {
"key": "acac136a-3bd4-831c-df6e-e5b95e593b9a",
"value": {}
}
}
}
}
}
}
}
}]

最佳答案

是的,可以通过图形 API 和文档 API 插入文档。但是,Cosmos 期望文档采用特定的 GraphSON 格式,以便在图遍历期间获取其所有属性。

我建议同时查看 Vertex PropertiesGraphSON从 Tinkerpop 文档开始更好地了解这些主题。

通过 Gremlin 添加文档时,语法是用逗号分隔您要添加的所有属性的名称值。试试这个:

g.addV('label', 'human', 'name', 'jesse', 'age', 27)

现在,如果您转到 Azure 门户并执行 SQL 查询 SELECT * FROM c,您将能够看到 Cosmos 已将您的文档转换成的格式。

关于node.js - 将 Azure CosmosDB DocumentDB API 与 Graph API 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44794180/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com