gpt4 book ai didi

mongodb - MongoDB中两个字段的唯一约束

转载 作者:IT老高 更新时间:2023-10-28 13:05:23 24 4
gpt4 key购买 nike

我有一个包含“email”和“friends_email”字段的集合。我想使用 MongoDB 设置如下的唯一性约束:

  1. 没有记录的 email 和 friends_email 的值相同。所以这将是无效的:

    {"email": "abc@example.com", "friends_email": "abc@example.com" }
  2. 没有 2 条记录的所有字段的值都相同。所以下面的例子都是无效的:

    {
    { "email": "abc@example.com", "friends_email": "def@example.com" },
    { "email": "abc@example.com", "friends_email": "def@example.com" }
    }
    {
    { "email": "abc@example.com", "friends_email": null },
    { "email": "abc@example.com", "friends_email": null }
    }
    {
    { "email": null, "friends_email": "abc@example.com" },
    { "email": null, "friends_email": "abc@example.com" }
    }

    用简单的英语来说,就像 emailfriends_email 的连接将是唯一的,null undefined 被合并成空字符串。

在 MongoDB 中执行此规则的最佳方式是什么?

最佳答案

听起来你需要一个复合唯一索引:

db.users.createIndex( { "email": 1, "friends_email": 1 }, { unique: true } )

...您可以在 ORM 层验证 email =/= friends_email。

关于mongodb - MongoDB中两个字段的唯一约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692726/

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