如何确保文档中的字段在 ArangoDB 中是唯一的?

Ali*_*Prf 4 database unique arangodb aql

我在 ArangoDB 中创建了一个集合,需要说明一个字段是唯一的。例如,我需要说在 'user_table' 中,'email' 是唯一的。怎么做?

stj*_*stj 5

为了确保集合中某个属性的唯一性,您可以使用ensureUniqueConstraint该集合的函数:

db['user_table'].ensureUniqueConstraint("email");
Run Code Online (Sandbox Code Playgroud)

这将在属性上创建一个非稀疏唯一索引email

如果email是可选属性,您可能需要使用:

db['user_table'].ensureUniqueConstraint("email", { sparse: true });
Run Code Online (Sandbox Code Playgroud)

正如@CoDEmanX 提到的,也可以使用更通用的ensureIndex方法并将索引类型和唯一性指定为参数:

db['user_table'].ensureIndex({ fields: ["email"], type: "hash", unique: true, sparse: true });
Run Code Online (Sandbox Code Playgroud)