- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已将我的数据存储在 AreangoDB 中的给定格式中,我在 DSP 中的集合名称:
"data": {
"1": [ {"db_name": "DSP"}, {"rel": "2"} ],
"2": [ {"rel_name": "DataSource"}, {"tuple": "201"}, {"tuple": "202"}, {"tuple": "203"} ],
"201": [ {"src_id": "Pos201510070"}, {"src_name": "Postgres"}, {"password": "root"}, {"host": "localhost"}, {"created_date": "20151007"}, {"user_name": "postgres"}, {"src_type": "Structured"}, {"db_name": "postgres"}, {"port": "None"} ],
"202": [ {"src_id": "pos201510060"}, {"src_name": "Postgres"},{"password": "root"}, {"host": "localhost"}, {"created_date": "20151006"}, {"user_name": "postgres"}, {"src_type": "Structured"}, {"db_name": "DSP"}, {"port": "5432"} ],
"203": [ {"src_id": "pos201510060"}, {"src_name": "Postgres"}, {"password": "root"}, {"host": "localhost"}, {"created_date": "20151006"}, {"user_name": "postgres"},{"src_type": "Structured"},{"db_name": "maindb"},{"port": "5432"} ]
}
我正在使用以下格式的上述数据执行查询:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p)
FOR attribute IN attributes
LET key = ATTRIBUTES(attribute)[0]
LET value = attribute[key]
RETURN { subject: attribute, predicate: key, object: value }
当我向 ArangoDB 提交查询时,它返回的响应如下:
Warnings:
[1542], 'invalid argument type in call to function 'ATTRIBUTES()''
[1542], 'invalid argument type in call to function 'ATTRIBUTES()''
[1542], 'invalid argument type in call to function 'ATTRIBUTES()''
[1542], 'invalid argument type in call to function 'ATTRIBUTES()''
Result:
[
{
"subject": "data",
"predicate": null,
"object": null
},
{
"subject": "_id",
"predicate": null,
"object": null
},
{
"subject": "_rev",
"predicate": null,
"object": null
},
{
"subject": "_key",
"predicate": null,
"object": null
}
]
请告诉我这个查询有什么问题,以及为什么答案像上面那样......我在 ArangoDB-2.7.3-win64 中工作。
谢谢
最佳答案
让我演示如何构造深入挖掘嵌套数据结构的复杂查询。我开始采用查询的外部部分,以获得内部结果:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p)
FOR attribute IN attributes
RETURN attribute
这给了我:
[
"data",
"_rev",
"_key",
"_id"
]
那么让我们深入到下一层。我猜您只对 data
键下的值感兴趣,对吗?所以我们选择p.data
:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR attribute IN attributes
RETURN attribute
然后为我提供下一个内部数组的键:
[
"203",
"202",
"201",
"2",
"1"
]
我们现在探索我们发现附加到这些节点的内容:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR oneAttribute IN attributes
LET keys = p.data[oneAttribute]
RETURN keys
它又是一个数组,我们需要使用 FOR
键循环遍历它:
[
[
{
"src_id" : "pos201510060"
},
{
"src_name" : "Postgres"
}, ...
我们添加这个额外的 FOR
循环:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR oneAttribute IN attributes
LET keys = p.data[oneAttribute]
FOR key IN keys
RETURN key
我们得到最里面的对象:
[
{
"src_id" : "pos201510060"
},
{
"src_name" : "Postgres"
},
{
"password" : "root"
},
...
您想使用 ATTRIBUTES
函数,但对象只有一个成员,因此我们可以访问 [0]
:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR oneAttribute IN attributes
LET keys = p.data[oneAttribute]
FOR key IN keys
LET keyAttributes=ATTRIBUTES(key)
RETURN keyAttributes
这给了我们对象键,每个最里面的对象一个:
[
[
"src_id"
],
[
"src_name"
],
我们检查现在是否只获得了最内层结构的对象键;我们选择比上面更聪明的变量名:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR oneAttribute IN attributes
LET pairs = p.data[oneAttribute]
FOR onePair IN pairs
LET pairKey=ATTRIBUTES(onePair)[0]
RETURN pairKey
是的:
[
"src_id",
"src_name",
"password",
"host",
...
现在是时候根据需要构建结果对象了:
FOR p IN NestedDSP
LET attributes = ATTRIBUTES(p.data)
FOR oneAttribute IN attributes
LET pairs = p.data[oneAttribute]
FOR onePair IN pairs
LET pairKey=ATTRIBUTES(onePair)[0]
RETURN { subject: oneAttribute, predicate: pairKey, object: onePair[pairKey] }
subject
是标识最外层项的数字,predicate
是对象键,object
是其中的值:
[
{
"subject" : "203",
"predicate" : "src_id",
"object" : "pos201510060"
},
{
"subject" : "203",
"predicate" : "src_name",
"object" : "Postgres"
}
希望哪一个是您想要的?
关于arangodb - 在 ArangoDB 中调用函数 'ATTRIBUTES()' 时参数类型无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37904470/
我无法停止 arangodb docker 容器中的 arangodb 服务器。 当我执行低于一个时, $/etc/init.d/arangod 停止 $service arangodb 状态 ara
我在 java 中查询 ArangoDB 以获取数组值时遇到问题。我尝试过使用 String[] 和 ArrayList,都没有成功。 我的查询: FOR document IN documents
我想计算 ArangoDB 的服务器要求。 我知道 ArangoDB 将索引存储在 RAM 中,但是索引使用了多少空间? 最佳答案 这取决于您使用的索引类型。 您可以使用“数字”来查看需要多少内存:
我是 Arango DB 的新用户,目前正在为我的项目评估它。有人可以告诉我,您可以在 Arango DB 中创建的最大数据库数量是多少吗? 谢谢。 最佳答案 据我所知,ArangoDB 中的数据库数
我尝试从我的电脑连接到位于另一台服务器上的 ArangoDB,但似乎不成功。然后,我尝试使用输入服务器 ip http://x.x.x.x:8529 提供的 Web UI 来访问它。但也失败了。我在本
我有一个这样的文件: { "baths": 2, "beds": 3, "id": "3225C", "addrs": [ { "line2": "",
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,因为
检索相关edge_collection中没有边的所有顶点的最佳方法是什么 我尝试使用以下代码,但自 arangodb 2.8 以来,它变得非常慢(在以前的版本中并不是很快,但比现在快了大约 10 倍)
我有许多节点通过其他类型的中间节点连接。如图所示,中间节点可以有多个。我需要找到给定数量的节点的所有中间节点,并按初始节点之间的链接数量对其进行排序。在我的示例中,给定 A、B、C、D,它应该返回节点
我有一个存储在 arangodb 中的对象,该对象具有其他内部对象,我当前的用例要求我仅更新其中一个元素。 存储对象 { "status": "Active", "physicalCode":
我正在尝试与 Arango 组合一个单元测试设置。为此,我需要能够在每次测试时重置测试数据库。 我知道我们可以直接从 REST API 删除数据库,但文档中提到创建和删除可能“需要一段时间”。 这是否
我有某种类型的事件列表,其结构如下: { createdAt: 123123132, type: STARTED, metadata: { emailAddress: "foo@bar
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我发现使用 Web UI 在 arangodb 上创建新用户时遇到了麻烦。首先,我可以创建一个新用户,但无法为该用户分配一个数据库。另外,你能帮忙提供一个使用 arangodb Shell 的方法吗?
我在本地运行 ArangoDB,其中包含来自多个不同项目的数据库、集合、数据和图表。我想备份所有内容,以便重建我的系统。我知道如何备份单个数据库,但因为我有很多数据库,所以我希望一次性完成。 本质上,
应该很容易操作,但我找不到如何实现这一点。我有两个来自不同集合的文档,现在我想使用现有集合中的新 Edge 链接它们。我正在尝试像这样使用 edge-collection.save 函数:edge-c
在我解决 1000 个客户端的任务中,每个客户端都有单独的 ArangoDB,在运行时记录单独的信息......我们需要将这些信息聚合回单个主节点服务器中的集合,以便可以进行查询和报告在上面。研究 J
具有以下结构的文档: { path: String, enabled: Long, disabled: null || Long, // other fields... } 我想通过路
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 我们不允许提问寻求书籍、工具、软件库等的推荐。您可以编辑问题,以便用事实和引用来回答。 关闭 3 年前。
我想从 ArangoDB 的文档中删除一个属性。 我认为正确的方法是使用函数 UNSET(doc, attributeName1, ..., attributeNameN) .然而,仅凭这一点,数据库
我是一名优秀的程序员,十分优秀!