MongoDB唯一索引错误:如何知道哪个字段产生了错误?
更新:这个问题是针对MongoDB 1.8.x提出的,而公认的解决方案是针对MongoDB 1.8.x的。但是,请注意,Mongo2.x已经对错误消息进行了更改,以便您可以知道哪些字段在更新和插入时生成了错误(请参见下面Kyle和Remon的评论) 是否有方法尝试Mongo upsert,如果存在唯一索引冲突,则知道是哪个字段导致了问题——一次数据库操作? 例如,假设我有一个MongoDB唯一索引错误:如何知道哪个字段产生了错误?,mongodb,Mongodb,更新:这个问题是针对MongoDB 1.8.x提出的,而公认的解决方案是针对MongoDB 1.8.x的。但是,请注意,Mongo2.x已经对错误消息进行了更改,以便您可以知道哪些字段在更新和插入时生成了错误(请参见下面Kyle和Remon的评论) 是否有方法尝试Mongo upsert,如果存在唯一索引冲突,则知道是哪个字段导致了问题——一次数据库操作? 例如,假设我有一个customers集合,其中包含\u id和name属性。另外,假设名称存在一个,以确保没有两个客户文档具有相同的名称 目
customers
集合,其中包含\u id
和name
属性。另外,假设名称
存在一个,以确保没有两个客户
文档具有相同的名称
目前,我执行两个数据库操作来执行upsert:
客户
,查看是否已经存在一个名为我将要插入/更新的文档E11001更新时的重复键”
”
如果有必要的话,是否有其他人对聪明的方法提出建议,以提高效率,并知道哪些字段会导致独特的索引问题?为了避免插入…,解析错误消息是最好的选择。不幸的是,对于更新,除了尝试检查集合中的现有数据外,没有更好的方法。尽管如此,您仍可以随时提出增强。您正在运行哪个版本的MongoDB?这在2.0.1中似乎是固定的。我刚刚测试了它,它在一次升级过程中给出了令人不快的索引,我使用的是1.8.x,但是知道2.x中的这个变化很好。谢谢@KyleBanker和@RemonvanVliet!