Azure cosmosdb Azure Cosmos DB-仅通过自加入获取子级

Azure cosmosdb Azure Cosmos DB-仅通过自加入获取子级,azure-cosmosdb,self-join,Azure Cosmosdb,Self Join,我正在努力从Cosmos DB获得我想要的结果 我的收藏可以表示为: [{ ..., "category": null "code": "A." }, { ... "category": "A." "code": "A2." }, { ..., "category": "A." "code": "A1." }, { ..., "category": "A1." "code": "A12." }] 其中每个文档都可以通过“类别”字段链接到另

我正在努力从Cosmos DB获得我想要的结果

我的收藏可以表示为:

[{
   ...,
  "category": null
  "code": "A."
},
{
   ...
  "category": "A."
  "code": "A2."
},
{
   ...,
  "category": "A."
  "code": "A1."
},
{
   ...,
  "category": "A1."
  "code": "A12."
}]
其中每个文档都可以通过“类别”字段链接到另一个文档

我只想检索最后的子项:那些代码属性未在另一个文档中用作类别的子项,因此对于前面的数据集,所需的输出将是: [{ ..., 类别:A。 代码:A2。 }, { ..., 类别:A1。 代码:A12。 }]

在SQL中,我可以这样编写:

从c中选择c.code,其中c.code不在从c中选择的类别中 您可以尝试使用Array_Slice来获取数组中的最后一个元素。请参阅此


如果代码没有用作类别,请向我们展示您想要的输出格式。在我的示例中,它只返回:{…,category:A1。code:A12。},因为A12。从未在其他文档中用作类别所有对象元素都是不同的文档或包含在一个数组中?没有其他筛选条件?没有排序规则?它们是不同的文档,没有其他条件,我只需要树的最后几页。这没有帮助,因为我的文档都不包含数组。我认为我想用Cosmos DB实现的目标是不可能的,因为它需要类似于atm不支持的跨文档连接的东西:
SELECT ARRAY_SLICE(array,-1)[0] FROM c