当前位置: 首页 > 面试题库 >

猫鼬唯一索引不起作用!

叶修永
2023-03-14
问题内容

我试图让MongoDB根据其索引检测重复值。我认为这在MongoDB中是可能的,但是通过Mongoose包装器,事情似乎被打破了。所以对于这样的事情:

User = new Schema ({
  email: {type: String, index: {unique: true, dropDups: true}}
})

我可以用同一封电子邮件保存2个用户。真是

在这里也表达了同样的问题:https :
//github.com/LearnBoost/mongoose/issues/56,但是该线程很旧,导致无处可去。

现在,我正在手动调用数据库以查找用户。由于对“电子邮件”进行了索引,因此该调用并不昂贵。但是让它在本地处理仍然会很好。

有人对此有解决方案吗?


问题答案:

糟糕!您只需要重新启动mongo。



 类似资料:
  • 问题内容: 为什么会出现此重复错误- ? 提供的所有字段都不为空。 架构: 发布: 错误: 创建新用户时出错:WriteError({:“ 11000,” index“:0,” errmsg“:” insertDocument ::由:: 11000 E11000重复键错误导致:iotdb.users。$ name_1 dup key:{: null}“,” op“:{”用户名“:” tealou

  • 问题内容: 我正在从npm 使用此架构: 如果我尝试保存已经存在于db中的电子邮件,则如果省略该字段,我希望得到一个类似的电子邮件。但是事实并非如此,我得到了。 这不是验证错误(即使我删除了unique:true也会发生)。 知道为什么吗? 问题答案: 我更喜欢将其放在路径验证机制中,例如 然后,它将被包装,并在您调用或时作为第一个参数返回。

  • 问题内容: 根据Mongoose 文档中关于和/的内容: 当您的应用程序启动时,Mongoose会自动调用架构中每个已定义的索引。虽然有利于开发,但建议在生产中禁用此行为,因为创建索引会严重影响性能。通过将架构选项设置为false来禁用该行为。 这似乎指示从Mongoose删除自动索引,然后再部署以优化Mongoose,而从指示Mongo在应用程序启动时遍历所有索引开始,这似乎是有道理的。 在生产

  • 问题内容: 我想为特定模型中的Mongoose 方法创建一个存根,以便我创建的模型的任何实例都将调用该存根,而不是普通的Mongoose 方法。我的理解是,执行此操作的唯一方法是像这样对整个模型进行存根: 不幸的是,这行代码使我的测试抛出以下错误: 有人知道这里出了什么问题吗? 问题答案: 有两种方法可以完成此操作。首先是 如果您使用log mongoose.Model控制台,则会看到该模型可用的

  • 我的文件是: 我有索引字段和,具有唯一的稀疏索引。这意味着我的数据库中总是有唯一的和。 但是对于和字段,它可以有空值(即在将字段插入数据库时缺少字段)。 这在MongoDB v3中运行正常。4.但当我试图在cosmosdb中使用相同的代码插入时,我遇到了错误 cosmosdb是否支持唯一稀疏索引? 我发现这个链接说它不支持。 默认情况下支持这个链接,该链接表示。

  • 以下两者之间有区别吗: 以及: 在这两种情况下,名称是否唯一?索引唯一时意味着什么? 编辑:Postgres是唯一的约束,而索引没有回答我的问题。它考虑了FK的情况。我的问题与FK无关。我只想知道在这个例子中,这两个操作是否等价,其中不涉及FK。