mongodb - 索引在几分钟后消失

时间:2018-02-09 07:55:09

标签: mongodb indexing

在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"
        }
]

我不知道为什么这些索引被删除了?任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:1)

索引选项background的类型为boolean,请尝试:

db.coll.createIndex (
   { checkinDate:1 }, { background: true }
 )

答案 1 :(得分:0)

这实际上是一个非问题。有一个程序,在后台运行,它定期丢弃所有索引(原因完全不同)。