将Azure CosmosDB DocumentDB API与图形API一起使用 我希望能够做到的是: 将无模式JSON保存到文档 任意连接这些文档 基于上述连接获取文档的递归树,例如: 我的设置的当前状态: 使用Graph(Gremlin)API配置的CosmosDB实例 可以通过DocumentDB API创建(JSON)文档 可以通过图形API为文档创建边 使用Node.js SDK 问题:

将Azure CosmosDB DocumentDB API与图形API一起使用 我希望能够做到的是: 将无模式JSON保存到文档 任意连接这些文档 基于上述连接获取文档的递归树,例如: 我的设置的当前状态: 使用Graph(Gremlin)API配置的CosmosDB实例 可以通过DocumentDB API创建(JSON)文档 可以通过图形API为文档创建边 使用Node.js SDK 问题:,node.js,azure,azure-cosmosdb,gremlin,Node.js,Azure,Azure Cosmosdb,Gremlin,是否可以通过Graph API将JSON对象保存为顶点?它允许使用g.addV('person').property('id','thomas').property('firstName','thomas').property('age',44.).property('userid',1)创建顶点,但是类似g.addV({firstName:'thomas'))的东西似乎不起作用 如果我通过DocumentDB API添加文档,并通过Graph API添加文档之间的边,然后遍历图形,则结果只包括

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

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

  • 遍历查询示例:

    g.V('03e0576f-2ff7-6109-5ed5-237b43191354')。重复(out('includes')。直到(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格式,以便在图形遍历期间提取文档的所有属性

    我建议大家看看Tinkerpop文档中的和,开始更好地了解这些主题

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

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

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

    谢谢!现在它(大部分)工作了:)有一个想法:通过保存文档,但不知道如何保存嵌套数据(我猜这些在Gremlin中被称为元属性)。试图保存文档,比如和使用Gremlin查询时,address有两个值,但我需要某种标签字段来区分它们。Cosmos支持添加元属性。我已经更新了你的要点,包括了在通过API API连接元属性时所期望的格式。你也可以考虑将不同属性的ID设置为人类友好的,但是如果你需要嵌套多个元属性,那么请参考我的要点。
    g.addV('label', 'human', 'name', 'jesse', 'age', 27)