MongoDB 从集合中删除重复文档的查询

MongoDB query to remove duplicate documents from a collection

我从搜索框中获取数据,然后使用常规插入查询将数据作为文档插入 MongoDB。数据以以下格式存储在单词 "cancer" 的集合中,具有唯一的“_id”。

{
  "_id": {
    "$oid": "553862fa49aa20a608ee2b7b"
  },
  "0": "c",
  "1": "a",
  "2": "n",
  "3": "c",
  "4": "e",
  "5": "r"
}

每个文档都有一个单词,以与上述相同的格式存储。我有很多这样的文件。现在,我想从集合中删除重复的文档。我想不出办法做到这一点。帮帮我。

mongo shell 中的简单解决方案:`

use your_db
db.your_collection.createIndex({'1': 1, '2': 1, '3': 1, etc until you reach maximum expected letter count}, {unique: true, dropDups: true, sparse:true, name: 'dropdups'})
db.your_collection.dropIndex('dropdups')

备注:

  • 如果您有很多文档,预计此过程会花费很长时间 时间
  • 小心 这会删除原地的文件,最好先克隆你的 collection 然后在那里试试。