【问题标题】:CosmosDB - Create IndexCosmosDB - 创建索引
【发布时间】:2019-07-11 10:16:13
【问题描述】:

我在 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' 不受支持

有人能解释一下吗?

【问题讨论】:

  • 与团队核实此事。
  • 不确定是不是拼写错误,但是您在“mycoll”上创建索引,然后在“woods”上创建索引,这似乎不正确。
  • @ChrisAnderson-MSFT 抱歉 - 这是一个错字 - 当我运行它时,两者的集合名称是相同的。我已经在上面编辑了。

标签: azure-cosmosdb azure-cosmosdb-mongoapi


【解决方案1】:

如果你使用Robo3T client,它会起作用。
但是,不考虑自定义名称。

在你的情况下:

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

您最终会得到一个名为:UniqueId_1

的索引

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-14
    • 2021-11-19
    • 1970-01-01
    • 2021-11-26
    • 2010-11-04
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    相关资源
    最近更新 更多