Mongodb 设置复合索引时出错

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

我想在我的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.getIndexes()
检查了此集合中的索引,得到:

[
    {
        "v" : 1,
        "key" : {
            "_id" : 1
        },
        "ns" : "tracking.sessions",
        "name" : "_id_"
    }
]

在我看来,它不像是一把复制的钥匙。我做错了什么?

MongoDB告诉您,您有多个文档(不止一个)具有相同的
fb\u id
ts
值,
null
值。换句话说,有些文档没有
fb_id
ts
字段。因此,它违反了集合中的唯一约束

作为一种解决方法,您应该查看索引。引用文件:

稀疏索引仅包含具有 索引字段。任何缺少该字段的文档都不会被删除 索引。索引是“稀疏的”,因为当 缺少值

另见:

希望有帮助