首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >MongoDB唯一索引自定义错误消息E11000

MongoDB唯一索引自定义错误消息E11000
EN

Stack Overflow用户
提问于 2014-10-20 00:30:48
回答 3查看 4.1K关注 0票数 6

是否有一种方法可以在E11000中设置“MongoDB重复键错误”的自定义错误消息?

(最好使用猫鼬):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
userSchema.index({ name: 1, email: 1 }, { unique: true });
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-09 15:39:35

1)你可以使用猫鼬独特的验证器。

https://www.npmjs.com/package/mongoose-unique-validator

这使得错误处理更加容易,因为当您试图违反唯一约束时,您将得到一个Mongoose验证错误,而不是来自MongoDB的一个MongoDB错误。

2)在在这个猫鼬唯一的预保存验证中,我做错了什么?中引用也可以在express中使用预保存方法

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Schema.pre("save",function(next, done) {
//Here you can search if the record already exists and return custom message.
next();
});
票数 7
EN

Stack Overflow用户

发布于 2017-08-07 18:02:44

您可以使用unique: true轻松自定义和显示用于mongoose-beautiful-unique-validation验证错误的错误消息。

要做到这一点,只需使用包猫鼬-美丽-独特-验证

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
npm install --save mongoose-beautiful-unique-validation

然后,您可以简单地将其用作全局插件(如下面所示)或每个模式。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
const beautifyUnique = require('mongoose-beautiful-unique-validation');

mongoose.plugin(beautifyUnique);

要获得完整的洞察和参考,请参阅本评论自述 on GitHub。

您还可能希望使用包猫鼬.验证.误差变换来显示Mongoose验证错误消息。

票数 5
EN

Stack Overflow用户

发布于 2014-10-20 06:49:34

不是,除非更改MongoDB源代码并使用新的错误消息重新编译它。您可以使用应用程序代码将消息再交换一条以满足您的需要。例如,您可以将索引构建调用包装在一个函数中,如果发生唯一的键约束违反错误,该函数将返回不同的错误消息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26461411

复制
相关文章
MongoDB 唯一索引
MongoDB 单键(列)索引 MongoDB 复合索引 MongoDB 多键索引 MongoDB执行计划获取(db.collection.explain())
Leshami
2018/08/08
3.9K0
mongodb 唯一索引 性能_什么是唯一索引
MongoDB 单键(列)索引 MongoDB 复合索引 MongoDB 多键索引 MongoDB执行计划获取(db.collection.explain())
全栈程序员站长
2022/11/05
1.1K0
mysql 联合索引 唯一_mysql 联合索引和唯一索引
如果表也有DML, 我一般只在a 上建索引. 这也是代价平衡的结果. 一方面 只在a 上建索引那么是
全栈程序员站长
2022/09/05
2.8K0
普通索引与唯一索引的区别_唯一索引怎么设置
所谓普通索引,就是在创建索引时,不附加任何限制条件(唯一、非空等限制)。该类型的索引可以创建在任何数据类型的字段上。
全栈程序员站长
2022/11/08
5370
普通索引与唯一索引的区别_唯一索引怎么设置
oracle普通索引改唯一索引,Oracle唯一索引功能替代[通俗易懂]
Oracle唯一索引在字段全部为NULL时,不做唯一性判断,允许重复插入,而在8t中即使均为NULL值也会做重复值判断,在某些场景下客户会存在此类需求,在数据量不大不存在性能问题的情况下可以考虑通过如下方式进行替代
全栈程序员站长
2022/09/29
2K0
MongoDB 稀疏(间隙)索引(Sparse Indexes)
a、间隙索引就是创建索引的索引列在某些文档上列不存在,导致索引存在间隙。 b、间隙索引在创建时应指定选项:{ sparse: true } c、间隙索引列上可以指定唯一性约束
Leshami
2018/08/13
2.7K0
MongoDB索引
创建索引的api,3.0之后使用createIndex,ensureIndex已经废弃 * 对于单字段索引,排序的顺序是升序还是降序无关紧要
字母哥博客
2020/09/23
1.6K0
MongoDB 索引
1. ensureIndex添加索引  ensureIndex 函数帮助文档  db.blog.ensureIndex(keypattern[,options]) - options is an object with these possible fields: name, unique, dropDups  name:指定索引名称  unique:是否唯一索引  dropDups:是否删除重复  创建索引的缺点:每次插入、更新、删除时都会产生额外的开销,要尽可能少创建索引。每个集合默认的最大索引个数为64个。  如果没有对应的键,索引会将其作为null存储,所以,如果对某个建立了唯一索引,但插入了多个缺少该索引键的文档,则由于文档包含null值而导致插入失败。  例子  > db.users.find()  { "_id" : ObjectId("4fc6d0c9387a7fee4eb6bfa9"), "name" : "aaa", "age" : 23, "sex" : "male" }  { "_id" : ObjectId("4fc6d0e5387a7fee4eb6bfaa"), "name" : "bbb", "age" : 25, "sex" : "male" }  { "_id" : ObjectId("4fc6d0f4387a7fee4eb6bfab"), "name" : "ccc", "age" : 25, "sex" : "male" }  { "_id" : ObjectId("4fc6d100387a7fee4eb6bfac"), "name" : "ddd", "age" : 25, "sex" : "male" }  { "_id" : ObjectId("4fc6d110387a7fee4eb6bfad"), "name" : "eee", "age" : 23, "sex" : "male" }  > db.users.ensureIndex({"name":1,"age":-1},{"name":"userIndex"})  //1,-1代表索引方向  //查找索引  > db.system.indexes.find()  { "name" : "_id_", "ns" : "blog.users", "key" : { "_id" : 1 }, "v" : 0 }  { "_id" : ObjectId("4fc6d1d0387a7fee4eb6bfb1"), "ns" : "blog.users", "key" : { "name" : 1, "age" : -1 }, "name" : "userIndex", "v" : 0 } 
阳光岛主
2019/02/18
5720
mysql 唯一索引_mysql主键和唯一索引的区别
普通索引(INDEX):最基本的索引,没有任何限制 唯一索引(UNIQUE):与”普通索引”类似,不同的就是:索引列的值必须唯一,但允许有空值。 主键索引(PRIMARY):它 是一种特殊的唯一索引,不允许有空值。 全文索引(FULLTEXT ):可用于 MyISAM 表,mysql5.6之后也可用于innodb表, 用于在一篇文章中,检索文本信息的, 针对较大的数据,生成全文索引很耗时和空间。 联合(组合)索引:为了更多的提高mysql效率可建立组合索引,遵循”最左前缀“原则。
全栈程序员站长
2022/11/05
2.9K0
MongoDB 索引
当往一个集合中插入多个文档后,每个文档经过存储殷引擎后,有一个位置信息,通过这个位置信息。就能从存储引擎中读出该文档。在 mmapv1 引擎下,位置信息是【文件id+文件内 offset】 。在wiredtiger存储引擎里,位置信息是 wiredgiter 在存储文档时生成的一个 key ,通过这个key 能访问到对应的文档。
王小明_HIT
2019/08/13
7150
MongoDB 索引
索引通常能够极大的提高查询的效率,如果没有索引,MongoDB在读取数据时必须扫描集合中的每个文件并选取那些符合查询条件的记录。
拓荒者
2019/09/11
6100
MySQL唯一索引和普通索引
查询语句会在k索引树上的树根开始,按层搜索到叶子节点(点位到右下角的数据页),然后在数据页内部再通过二分法定位记录。
shysh95
2022/02/16
1.8K0
MySQL唯一索引和普通索引
唯一索引,普通索引如何抉择
在查找的过程中,找到第一个满足 k=5的记录后,需要查询下一个记录,知道遇到第一个不满足k=5的记录。
用户7447819
2021/07/23
4270
深入理解四种数据库索引类型(- 唯一索引/非唯一索引 - 主键索引(主索引) - 聚集索引/非聚集索引 - 组合索引)唯一索引/非唯一索引主键索引(主索引)聚集索引/非聚集索引5.组合索引(联合索引)
1.唯一索引是在表上一个或者多个字段组合建立的索引,这个或者这些字段的值组合起来在表中不可以重复。
desperate633
2018/08/22
11.1K0
唯一索引与主键索引的比较
唯一索引 唯一索引不允许两行具有相同的索引值。 如果现有数据中存在重复的键值,则大多数数据库都不允许将新创建的唯一索引与表一起保存。当新数据将使表中的键值重复时,数据库也拒绝接受此数据。例如,用户表中的身份证(idcard) 列上创建了唯一索引,则所有身份证不能重复 主键索引 主键索引是唯一索引的特殊类型。 数据库表通常有一列或列组合,其值用来唯一标识表中的每一行。该列称为表的主键。 在数据库关系图中为表定义一个主键将自动创建主键索引,主键索引是唯一索引的特殊类型。主键索引要求主键中的每个值是唯一的。当在查
joshua317
2018/04/16
3.1K0
选择普通索引还是唯一索引?(转)
选择普通索引还是唯一索引? 对于查询过程来说: a、普通索引,查到满足条件的第一个记录后,继续查找下一个记录,知道第一个不满足条件的记录 b、唯一索引,由于索引唯一性,查到第一个满足条件的记录后,停止检索 但是,两者的性能差距微乎其微。因为InnoDB根据数据页来读写的。 对于更新过程来说: 概念:change buffer 当需要更新一个数据页,如果数据页在内存中就直接更新,如果不在内存中,在不影响数据一致性的前提下,InnoDB会将这些更新操作缓存在change buffer中。下次查询需要访问这个数据页的时候,将数据页读入内存,然后执行change buffer中的与这个页有关的操作。
袁新栋-jeff.yuan
2020/08/26
5000
索引(index)_普通索引、唯一索引和复合索引.索引查询
索引对于优化数据库查询效率方面有着非常巨大的作用,下面是一个简单索引查询效率示例,希望能帮到一些朋友。
全栈程序员站长
2022/07/22
1.1K0
索引(index)_普通索引、唯一索引和复合索引.索引查询
唯一索引和普通索引的区别
索引用来快速地寻找那些具有特定值的记录,如果没有索引,执行查询时Mysql必须从第一个记录开始扫描整个表的所有记录,直至找到符合要求的记录,表里面的记录数量越多,这个操作的代价就越高,如果作为搜索条件的列上已经创建了索引,mysql无需扫描任何记录即可迅速得到目标记录所在的位置。如果表有一千个记录,通过索引查找记录至少要比顺序扫描记录快100倍。所以对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分。
全栈程序员站长
2022/11/05
1.5K0
mysql添加唯一索引语句_mysql修改唯一索引语句
ALTER TABLE `table_name` ADD PRIMARY KEY ( `column` )
全栈程序员站长
2022/11/06
7.5K0
MongoDB 聚合索引
MongoDB 聚合索引是一种包含多个字段的索引,它可以提高查询效率,特别是在需要对多个字段进行查询或者聚合操作时。以下是 MongoDB 官方文档中关于聚合索引的详细说明和示例:
玖叁叁
2023/04/14
7580

相似问题

E11000重复密钥错误索引: MongoDb异常错误

23

E11000重复键错误索引:创建唯一索引时

12

Mongodb和Mongoose错误: E11000重复密钥错误索引

21

使用部分多键唯一索引时的E11000 (DuplicateKey)错误

11

E11000 : MongoDB如何摆脱此错误

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文