orientdb - 在 OrientDB 中使用 OUT() 返回连接节点的属性而不是 RID
问题描述
我正在尝试通过 OUT() 投影将连接节点的数据存储在 OrientDB 中选定节点的属性中。例如:
SELECT *, OUT("Has_Friend") AS Friends FROM Person
鉴于“人”节点通过“Has_Friend”边缘连接到多个“朋友”节点,我希望将实际的朋友节点属性存储在此查询返回的每个人节点的“朋友”属性中。例如:
{
"result": [
{
"Name": "Joe",
"Friends": [
{
"Name": "Ben",
"Title": "Mr."
},
{
"Name": "Stan",
"Title": "Dr."
}
]
},
{
"Name": "Tim",
"Friends": [
{
"Name": "Terrance",
"Title": "Esq."
},
{
"Name": "Sarah",
"Title": "Dr."
}
]
}
]
}
但是,查询仅将每个“朋友”节点的 RID 存储在“朋友”属性中,而不是该“朋友”节点的实际数据。例如:
{
"result": [
{
"Name": "Joe",
"Friends": [
"#228:1",
"#227:1"
]
},
{
"Name": "Tim",
"Friends": [
"#225:1",
"#226:1"
]
}
]
}
我已经搜索了 OrientDB 文档,但不确定如何实现这一点。我怀疑有一种方法可以将这些 Friend 节点的查询嵌套在主查询中,但我不完全确定如何做到这一点。非常感谢任何见解!
解决方案
尝试使用expand()函数。它将扩展该链接指向的文档并提供该文档的所有属性。因此,您的查询应如下所示:
SELECT expand(in("Has_Friend")) AS Friend FROM Person
推荐阅读
- python - Firestore 不导入 Blob,而是导入字符串值
- google-cloud-firestore - 被取代的 Cloud Datastore 上的“DatastoreException:缺少或不足的权限”
- node.js - 如果 express 服务器使用 package.json 中的脚本运行,它将不会出现
- modelica - 我可以通过在 Dymola 中设置状态变量的最小和最大边界来确保收敛吗?
- javascript - 切换到另一个标签时如何停止滚动滑动?
- redux - 如何将 cookie 从 getIinitialprops 传递到 nextjs 中的 redux 中间件?
- android - 底部工作表对话框片段已关闭,无法再次显示
- ssh - *** 检测到缓冲区溢出 *** /usr/bin/expect 终止
- github - 在 CircleCI 中安装 GitHub 包
- sql - SQL如何删除重复记录