Mongodb 设置复合索引时出错
我想在我的mongoDB中的fb_id和ts上设置复合索引。所以,我做到了:Mongodb 设置复合索引时出错,mongodb,Mongodb,我想在我的mongoDB中的fb_id和ts上设置复合索引。所以,我做到了: PRIMARY> db.sessions.ensureIndex( { fb_id: 1, ts: 1 }, { unique:true } ); 但我犯了以下错误: E11000 duplicate key error index: tracking.sessions.$fb_id_1_ts_1 dup key: { : null, : null } 因此,我使用db.sessions.getIndexe
PRIMARY> db.sessions.ensureIndex( { fb_id: 1, ts: 1 }, { unique:true } );
但我犯了以下错误:
E11000 duplicate key error index: tracking.sessions.$fb_id_1_ts_1 dup key: { : null, : null }
因此,我使用db.sessions.getIndexes()
检查了此集合中的索引,得到:
[
{
"v" : 1,
"key" : {
"_id" : 1
},
"ns" : "tracking.sessions",
"name" : "_id_"
}
]
在我看来,它不像是一把复制的钥匙。我做错了什么?MongoDB告诉您,您有多个文档(不止一个)具有相同的
fb\u id
和ts
值,null
值。换句话说,有些文档没有fb_id
和ts
字段。因此,它违反了集合中的唯一约束
作为一种解决方法,您应该查看索引。引用文件:
稀疏索引仅包含具有
索引字段。任何缺少该字段的文档都不会被删除
索引。索引是“稀疏的”,因为当
缺少值
另见: