首页 > 解决方案 > CosmosDB - 创建索引

问题描述

我在 CosmosDB 中创建了一个新集合,并且正在尝试创建我的第一个索引。

我运行以下脚本:

db.getCollection("mycoll").createIndex({ "UniqueId": 1 }, { "name": "udx_mycoll_UniqueId", "unique": true });

它会产生响应:

{
    "_t" : "CreateIndexesResponse",
    "ok" : 1,
    "createdCollectionAutomatically" : false,
    "numIndexesBefore" : 3,
    "numIndexesAfter" : 4
}

这看起来很有希望,但是当我运行查询时:

db.mycoll.getIndexes();

没有找到索引。我也尝试在 Compass 中运行它,但当我切换到索引选项卡时出现错误:

不支持“$indexState”

任何人都可以对此有所了解吗?

标签: azure-cosmosdbazure-cosmosdb-mongoapi

解决方案


如果您使用Robo3T 客户端,它可以工作。
但是,不考虑自定义名称。

在你的情况下:

db.getCollection("mycoll").createIndex({ "UniqueId": 1 }, { "name": "udx_mycoll_UniqueId", "unique": true });

你最终会得到一个名为:UniqueId_1的索引


推荐阅读