PHP中的MongoDB createIndex

时间:2015-12-28 14:20:45

标签: php mongodb

我将文章视图计数存储在MongoDB中,就像这样

    $mongoCollection = $this->mongoClient->db->collectionName;

    $mongoCollection->findAndModify(
        [
            'id' => (int)$article_id
        ],
        [
            '$inc' => [
                'count' => 1
            ]
        ],
        null,
        [
            'upsert' => true
        ]
    );

现在我需要添加索引,所以我只是添加

    $mongoCollection->createIndex(['id' => 1]);

之后

    $mongoCollection = $this->mongoClient->db->collectionName;

但是这给了我

名称为:id_1的索引已存在且包含不同的选项

但为什么呢? http://php.net/manual/en/mongocollection.createindex.phphttps://docs.mongodb.org/v3.0/tutorial/create-an-index/它必须有效吗?

我做错了什么?添加

是否正确
    ['unique' => true, 'dropDups' => 1]

在这种情况下?

1 个答案:

答案 0 :(得分:2)

错误消息说明了一切:名称为:id_1的索引已经存在且具有不同的选项

你们都准备好了一个具有该名称的索引。您只需要创建一次索引 - 而不是每次连接到数据库时。