【问题标题】:dropDups alternative in MongoDB 3.2MongoDB 3.2 中的 dropDups 替代方案
【发布时间】:2018-01-10 05:59:04
【问题描述】:

我目前使用的是 MongoDB 3.2。一段时间后,我决定在phone 字段上创建一个索引,该字段目前有很多不明确的值。我没有注意到自 3.0 版以来,dropDupsoption 不再可行。因此,失败的索引确保阻止我插入任何新文档。除了删除有重复phone的文档,还有什么解决办法吗?

【问题讨论】:

  • 不。试试这个:db.collectionName.aggregate([{ $group: { _id:{phone:'$phone'}, list: { $addToSet: '$_id' }}}, { $match: { 'list.1': { $exists: 1 } } }]).forEach(item => { const list = item.list.slice(1); db.collectionName.deleteMany({ _id: { $in: list } }); });

标签: node.js mongodb duplicates


【解决方案1】:

除了删除重复phone的记录之外别无选择。

对于背景(虽然你已经看过这个),来自MongoDB 3.0 compatability docs

移除 dropDups 选项

dropDups 选项不再可用于 createIndex()、ensureIndex() 和 createIndexes。

【讨论】:

    猜你喜欢
    • 2015-06-22
    • 2018-03-14
    • 1970-01-01
    • 2023-03-03
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-01-27
    • 1970-01-01
    相关资源
    最近更新 更多