让 CosmosDB 选择插入项目的 ID
Have CosmosDB choose the ID of the inserted item
在 CosmosDB SQL API 实例中,我想在我的容器中插入一个简单的 JSON object,比方说
{
"first_name":"John",
"last_name":"Doe"
}
使用 azure 上提供的示例应用程序,我在 Python 中执行以下操作:
container.create_item(body=snapshot)
我遇到了这个错误,这似乎很正常:
run_sample has caught an error. (BadRequest) Message: {"Errors":["The input content is invalid because the required properties - 'id; ' - are missing. Learn more: https:\/\/aka.ms\/CosmosDB\/sql\/errors\/missing-id"]}
我不想提供 ID,而是让 CosmosDB 实例选择它,就像许多其他系统可以做的那样(postgres,mongo...)。
虽然我可以在 CosmosDB MongoDB API 实例中执行此操作,但我无法使用 SQL API 实例执行此操作。这能实现吗?
我对此 collection 进行了以下设置:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
]
}
Cosmos SQL API 没有任何自动 ID 生成。这在您分享的错误中的 aka.ms link 中被引用:https://aka.ms/CosmosDB/sql/errors/missing-id
没有可以打开的设置或配置来实现此目的。 id
字段需要在您的应用程序代码中生成并填充。
一些较旧的 SDK 通过将 Guid
分配给 id
来进行本地自动生成,但这在您的应用程序代码中很容易实现。
在 NodeJS(您似乎正在使用的语言)中,您可以利用 NodeJS crypto.randomUUID
方法 (https://nodejs.org/docs/latest-v14.x/api/crypto.html#crypto_crypto_randomuuid_options) 生成随机 Guid 并将其分配给 id
属性 或使用您自己的自定义业务逻辑。
在 CosmosDB SQL API 实例中,我想在我的容器中插入一个简单的 JSON object,比方说
{
"first_name":"John",
"last_name":"Doe"
}
使用 azure 上提供的示例应用程序,我在 Python 中执行以下操作:
container.create_item(body=snapshot)
我遇到了这个错误,这似乎很正常:
run_sample has caught an error. (BadRequest) Message: {"Errors":["The input content is invalid because the required properties - 'id; ' - are missing. Learn more: https:\/\/aka.ms\/CosmosDB\/sql\/errors\/missing-id"]}
我不想提供 ID,而是让 CosmosDB 实例选择它,就像许多其他系统可以做的那样(postgres,mongo...)。
虽然我可以在 CosmosDB MongoDB API 实例中执行此操作,但我无法使用 SQL API 实例执行此操作。这能实现吗?
我对此 collection 进行了以下设置:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*"
}
],
"excludedPaths": [
{
"path": "/\"_etag\"/?"
}
]
}
Cosmos SQL API 没有任何自动 ID 生成。这在您分享的错误中的 aka.ms link 中被引用:https://aka.ms/CosmosDB/sql/errors/missing-id
没有可以打开的设置或配置来实现此目的。 id
字段需要在您的应用程序代码中生成并填充。
一些较旧的 SDK 通过将 Guid
分配给 id
来进行本地自动生成,但这在您的应用程序代码中很容易实现。
在 NodeJS(您似乎正在使用的语言)中,您可以利用 NodeJS crypto.randomUUID
方法 (https://nodejs.org/docs/latest-v14.x/api/crypto.html#crypto_crypto_randomuuid_options) 生成随机 Guid 并将其分配给 id
属性 或使用您自己的自定义业务逻辑。