RavenDB RQL检索相关文档

3
我正在使用 RavenDB 5.1。
我有一个父文档。
{
   "ddt": "1313",
   "operator": "Dadas",
   "insertAt": "01/02/2021 12:15:47",
   "code": "R2021.001",
   "clientId": "cbaa9024-abf8-4575-8f44-c06bbb3d8a2e",
   "@metadata": {
      "@collection": "repairOrders"
   }
}

以及其他集合中的文档

{
   "name": "AZM2E",
   "piva": "31137418148",
   "@metadata": {
      "@collection": "clients"
   }
}

使用RQL,我需要一个查询,给我:

{
   "ddt": "1313",
   "operator": "Dadas",
   "insertAt": "01/02/2021 12:15:47",
   "code": "R2021.001",
   "clientId": "cbaa9024-abf8-4575-8f44-c06bbb3d8a2e",
   "client": {
       "name": "AZM2E",
       "piva": "31137418148",
   }
   "@metadata": {
      "@collection": "repairOrders"
   }
}

我需要通过 REST API 执行查询。

1个回答

3
您可以将clients集合中的文档存储为repairOrders集合中文档的一个相关文档。
请参阅create-related-documents demo中的示例和演练: https://demo.ravendb.net/demos/csharp/related-documents/create-related-documents 然后,您可以查询repairOrders集合:
  1. 在查询中包括相关文档

  2. 在查询结果中选择/投影相关文档信息

  3. 请参阅query-example demo中的示例和演练:
    https://demo.ravendb.net/demos/csharp/queries/query-example#step-6

要使用includeRQL,请参阅: https://ravendb.net/docs/article-page/5.1/csharp/indexes/querying/what-is-rql#include

诀窍是将属性命名为集合?我只使用HTTP API,所以这对我很重要。 - Daniele Poggi
我也尝试过Graph API...哇哦...这对我很有用:match(repairOrders)-[clientId]->(客户端作为客户)是否适用于生产? - Daniele Poggi
保存/包含相关文档ID的属性名称不必与“其他”集合名称相同。 - Danielle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接