MongoDB 确保索引不会停止重复

MongoDB Ensure Index not stopping Duplicates

我试图在我的 Mongo 数据库集合中停止重复,但它们仍在进入。我正在从 Twitter 读取数据并将其存储为:

var data = {
    user_name: response[i].user.screen_name,
    profile_image: response[i].user.profile_image_url,
    content: {
        text: response[i].text
    },
    id: response[i].id_str,
};

我有以下方法来阻止任何重复:

db[collection].ensureIndex( { id: 1, "content.text": 1 }, { unique: true, dropDups: true } );

id 字段有效,没有出现重复项,但 "content.text" 字段无效,出现重复项。有什么想法吗?

当您对复合索引强制执行 unique 约束时,只有当两个文档的 idcontext.text 字段具有相同的值而不是任一键单独。

要对字段 idcontext.text 单独实施唯一约束,您可以按如下方式实施:

db.col.ensureIndex({"id":1},{unique:true}) 其他字段也类似。