gpt4 book ai didi

node.js - Neo4j,如何索引并向 Node 提供 ID

转载 作者:太空宇宙 更新时间:2023-11-03 23:05:38 26 4
gpt4 key购买 nike

我对 Neo4j 有点陌生,我想开始使用 Neo4j 和 NodeJS 构建一个应用程序。

根据我的理解,neo4j 将 id 添加到它创建的每个 Node ,并且这个 id 不应该在数据库之外使用,所以这意味着如果我有用户,那么通过 id 查找用户(neo 在创建该用户时给出的相同 id)并不是那么聪明。

所以问题是:

  1. 寻找用户的最佳理由是什么?电子邮件?可以,但并非应用程序中的所有内容都有唯一的标识符,例如用户的电子邮件

  2. 我看到很少有关于 uuid 的帖子,假设我正在使用它......我可以使用名称 id 保存该字段吗?或者我需要其他名字?

  3. 如果我希望将该字段用作索引,我需要做一些特殊的事情吗? (我希望通过 id 进行快速搜索。)

  4. uuid 生成一个非常长的字符串,索引该字符串不是有点开销吗?对数字建立索引会更快,不是吗?

  5. 如果不使用uuid,您认为还有其他选择吗?

最佳答案

1)最好的方法 - UUID。

2)是的。

3) 不需要。您只需添加 index到数据库。示例:

CREATE INDEX ON :User(uuid)

4) 确实,id 查找速度更快,尤其是在 Neo4j 中(由于存储实现)。然而,使用 UUID 的索引支持查找性能非常好,大多数 Neo4j 用户都在使用它(如果他们的域中没有其他唯一标识符)。

5) UUID 是最好的选择。特别是当您考虑如何在集群设置中生成 ID 时。 UUID 提供了生成唯一标识符的可能性,而无需采取任何全局数据库锁等。Here您可以阅读更多有关 UUID 的理论信息。

<小时/>

现有的 Neo4j 扩展可以为您生成 UUID。例如 - GraphAware/neo4j-uuid .
在此扩展中,您可以配置属性名称、应应用哪些 Node/关系 UUID 等。

关于node.js - Neo4j,如何索引并向 Node 提供 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35503628/

26 4 0
文章推荐: c# - 将 List 动态转换为 List