【问题标题】:Cosmos DB error code 400 while creating a new document创建新文档时 Cosmos DB 错误代码 400
【发布时间】:2018-06-19 16:28:52
【问题描述】:

我创建了一个 Azure Cosmos DB(选择 MongoDB 作为语言),通过 Azure 门户(网站)创建新文档时失败并显示:

{"code":400,"body":"Command insert failed: document does not contain shard key."}

我尝试通过网站创建以下文档:

{
    "wordpress_id": "test"
}

还有这个:

{
    "id" : "replace_with_new_document_id",
    "wordpress_id": "test"
}

"wordpress_id" 是我在创建集合时定义的"Shard key"(或分区键)。它也是一个唯一键

这就是我see 在“缩放和设置”选项卡中的内容。 这是我尝试创建文档时看到的error

我错过了什么吗?

你知道为什么会这样吗?

【问题讨论】:

  • 您是否尝试从 Mongo 客户端运行相同的操作,例如,Robomongo
  • 谢谢!使用此工具创建集合确实有效。

标签: mongodb azure azure-cosmosdb


【解决方案1】:

我错过了什么吗?你知道为什么会这样吗?

如果我从 Azure 门户创建共享集合,我也可以重现此问题。

根据 azure official document,我们可以知道我们可以使用喜欢的工具、驱动程序或 SDK 创建共享集合。

使用 MongoDB API,您可以通过最喜欢的工具、驱动程序或 SDK 创建分片集合。

我用studio3t 工具做了一个演示。我使用的 Mongo Shell

db.runCommand( { shardCollection: "databaseName.collectionName", key: { KeyName: "hashed" } } )

从 studio3t 运行 Mongo Shell

之后我们就可以正确地从 Azure 门户创建文档了。

【讨论】:

  • 谢谢!它确实有效,尽管很奇怪官方 Azure 门户没有被微软认可为最喜欢的工具、驱动程序或 SDK。我为此使用了 Robomongo。
  • 我们在门户网站上发现了问题,并将针对这种情况发布修复程序。
  • @JuliánCalleja 门户已修复,创建工作正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-29
  • 2021-05-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多