我已将数据存储在ArangoDB 2.7.1中,与集合名称DSP一样:
{"content": "Book.xml", "type": "string", "name": "name", "key": 102}
此处,单个集合key
表示集合中的单个文档。
现在,我想访问多个文档中具有key
属性的类似值的所有文档,或者类型标题和价格,其中类型是计算机"对于相同的FOR p IN DSP filter p.name == "publish_date" AND p.content == "2000-10-01" AND p.name == 'title' return p
值。我已经尝试了一个AQL作为publish_date
,但这是一个空集,因为它是在单个文档中进行比较,而不是在集合中。
与关系型数据库一样,需要某种自联接,但我不知道如何应用自联接。请告诉我如何使用publish_date
为" 2000-10-01"的关键属性的相同值访问所有文档。我希望此查询的结果包含以下文档,因为对应于key
且值为2000-10-01,{"content": "Gambardella, Matthew", "type": {"py/type": "__builtin__.str"}, "name": "author", "key": 1031}
{"content": "XML Developer's Guide", "type": {"py/type": "__builtin__.str"}, "name": "title", "key": 1031}
{"content": "Computer", "type": {"py/type": "__builtin__.str"}, "name": "genre", "key": 1031}
{"content": "44.95", "type": {"py/type": "__builtin__.str"}, "name": "price", "key": 1031}
{"content": "2000-10-01", "type": {"py/type": "__builtin__.str"}, "name": "publish_date", "key": 1031}
{"content": "An in-depth look at creating applications with XML.", "type": {"py/type": "__builtin__.str"}, "name": "description", "key": 1031}
的值为1031:
otool -arch arm64 -l linkedin-sdk | grep '__bitcode'
答案 0 :(得分:3)
假设发布日期存储在属性name
中,并且其值存储在属性content
中,您首先需要查找具有该组合的所有文档:
FOR self IN DSP
FILTER self.name == 'publish_date' && self.content == '2000-10-01'
RETURN self
现在,找到这些文档后,您可以再次将它们与DSP集合连接起来,过滤掉具有相同key
值的文档,但不包括初始FOR
中已找到的文档:
FOR self IN DSP
FILTER self.name == 'publish_date' && self.content == '2000-10-01'
FOR other IN DSP
FILTER other.key == self.key && other._key != self._key
RETURN { self, other }
如果您总是过滤名称和内容和/或密钥,那么索引这些属性可能是明智的。看起来key
本身应该有一个索引。哈希索引应该足够,因为key
将始终是相等的。 name
和content
(按此顺序)可以放入跳转列表索引。