MongoDB确保索引不会停止重复项

时间:2015-01-19 16:49:53

标签: node.js mongodb

我试图在我的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”字段不起作用,并且正在出现重复项。任何想法为什么?

1 个答案:

答案 0 :(得分:2)

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

要对字段idcontext.text分别强制执行唯一约束,您可以按以下方式强制执行:

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