gpt4 book ai didi

arangodb - 在 ArangoDB 边缘集合中为多个路径属性创建唯一索引,包括 _from 和 _to 属性

转载 作者:行者123 更新时间:2023-12-04 17:34:44 25 4
gpt4 key购买 nike

我正在尝试为边集合设置唯一约束,以便在两个给定节点之间只能创建某种类型的边。问题是我似乎不能使用 _from_to属性作为创建索引时的路径属性。到目前为止我尝试过的:

db._collection('edges').ensureUniqueConstraint('_from', '_to', 'type');

我收到以下错误:
[ArangoError 10: bad parameter]

我不想在创建之前检查两个节点之间是否存在某种边缘类型。

任何提示?

最佳答案

当前无法在内部属性(例如 _key、_id、_rev、_from 或 _to)上创建二级索引。我们希望在 ArangoDB 的 future 版本中允许这样做,但这将是一个巨大的代码更改。

实现预期结果的唯一方法是在您保存的边缘创建一个额外的属性,并将“_from”、“_to”和“type”的组合放入其中。我认为这些值应该在边缘创建时就已经知道了。

所以不要像这样保存边缘

db.edges.save(_from, _to, { type: type, other: ... });

它应该是这样的:
// create a unique index on attribute "unique"
db._collection("edges").ensureUniqueConstraint("unique");

// create a variable "unique" which contains the values of _from and _to and type
var unique = _from + "-" + _to + "-" + String(type);

// now save the edge, using the "unique" attribute
db.edges.save(_from, _to, { type: type, unique: unique, other: ... });

这是一种解决方法,但它应该可以解决该特定问题。

关于arangodb - 在 ArangoDB 边缘集合中为多个路径属性创建唯一索引,包括 _from 和 _to 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25054227/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com