【问题标题】:Mongodb text index Duplicate Key Error when part of string field same当部分字符串字段相同时,Mongodb文本索引重复键错误
【发布时间】:2017-05-20 20:33:44
【问题描述】:

例如:

文档1:
{
'name':'apple'
}
文档2:
{
'name':'apple juice'
}

当我用 pymongo 创建文本索引时:

db.products_collection.create_index([('name', TEXT)],
                                     unique=True,
                                    background=True)

它给我一个错误:

E11000 重复键错误集合:c.items_collection 索引: name_text_alias_text 复制键:{ : "apple", : 10.5 }

有人知道为什么吗?我无法为文本字符串添加unique=True

【问题讨论】:

  • appleapple juice 是两个不同的值。它们不会导致您的错误,您应该检查您的数据库是否出现任何情况
  • 我知道你的意思。问题是文本索引。我认为 mongodb 使用 ' ' 将字符串拆分为索引以改进搜索并使此错误发生。您可以尝试使用文本索引。
  • 我想我找到了解决办法。
  • 你是怎么解决的?
  • @Khang 不使用一个索引,而是使用两个索引。

标签: python mongodb indexing database


【解决方案1】:

文本索引将字符串拆分为标记(单词),这些标记形成键。所以在你的例子中,“apple”是一个重复键。

通常,唯一的文本索引是个坏主意。

【讨论】:

  • 请查看问题的cmets。
猜你喜欢
  • 2011-03-11
  • 2012-08-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-31
  • 1970-01-01
  • 2017-04-01
  • 1970-01-01
相关资源
最近更新 更多