我试图在我的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”字段不起作用,并且正在出现重复项。任何想法为什么?
答案 0 :(得分:2)
当您对复合索引强制执行unique约束时,只有当文档对id
和context.text
字段具有相同值而不是任何一个键时,才会认为两个文档相同单独
要对字段id
和context.text
分别强制执行唯一约束,您可以按以下方式强制执行:
db.col.ensureIndex({"id":1},{unique:true})
和其他字段类似。