在MongoDB 3.4和3.6上测试了这个:
在集合中创建一个或多个索引
rs1:PRIMARY> db.coll.createIndex({checkinDate:1}, {background:1})
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1,
"operationTime" : Timestamp(1518162276, 2),
"$clusterTime" : {
"clusterTime" : Timestamp(1518162276, 2),
"signature" : {
"hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
"keyId" : NumberLong(0)
}
}
}
现在列出索引。
rs1:PRIMARY> db.coll.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "cico.coll"
},
{
"v" : 2,
"key" : {
"checkinDate" : 1
},
"name" : "checkinDate_1",
"ns" : "cico.coll",
"background" : 1
}
]
等待一段时间(几分钟)
再次列出索引:
rs1:PRIMARY> db.coll.getIndexes()
[
{
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "cico.coll"
}
]
我不知道为什么这些索引被删除了?任何帮助表示赞赏。
答案 0 :(得分:1)
索引选项background
的类型为boolean
,请尝试:
db.coll.createIndex (
{ checkinDate:1 }, { background: true }
)
答案 1 :(得分:0)
这实际上是一个非问题。有一个程序,在后台运行,它定期丢弃所有索引(原因完全不同)。