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 约束时,只有当两个文档的 id
和 context.text
字段具有相同的值而不是任一键单独。
要对字段 id
和 context.text
单独实施唯一约束,您可以按如下方式实施:
db.col.ensureIndex({"id":1},{unique:true})
其他字段也类似。
我试图在我的 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 约束时,只有当两个文档的 id
和 context.text
字段具有相同的值而不是任一键单独。
要对字段 id
和 context.text
单独实施唯一约束,您可以按如下方式实施:
db.col.ensureIndex({"id":1},{unique:true})
其他字段也类似。