使用最新的azure cli(2.0.21)我试图在CosmosDB中创建一个带有以下脚本的分片MongoDB集合(来自powershell):
$resourceGroupName="RG-S01-APP-CASRWA-001"
$name="marcoolandesetest"
$databaseName="marco"
$collectionName="fromcli"
$originalThroughput=100000
$kind="MongoDB"
$partition="/TaskId"
az login
az cosmosdb create --name $name --kind $kind --resource-group
$resourceGroupName
az cosmosdb database create --name $name --db-name $databaseName --resource-
group $resourceGroupName
az cosmosdb collection create --collection-name $collectionName --name $name --db-name $databaseName --resource-group $resourceGroupName --throughput $originalThroughput --partition-key-path $partition --indexing-policy '@index.json'
index.json的内容如下:
{
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "Number",
"precision": -1
},
{
"kind": "Hash",
"dataType": "String",
"precision": 3
}
]
}
],
"excludedPaths": []
}
但是当我尝试从门户网站中的UI插入文档时没有任何反应,文档在插入时挂起:
使用MongoB.Drivers nuget包从C#库插入文档也会失败,收到错误:
“文档不包含分片键”
显然我的文档包含分片键属性“TaskId”。
如果我从Portal中的UI创建相同类型的集合,一切正常,也可以在C#中使用相同的代码
以下是两个集合设置的屏幕截图,您可以看到它们是相同的:
集合“fromui”是从门户网站UI创建的,有了这一个,一切正常,从门户网站插入文档,以及从C#插入。
集合“fromcli”是使用上面的CLI脚本创建的,并插入一个根本不起作用的文档。
答案 0 :(得分:2)
Microsoft确认CLI(2.0.21)中存在错误,他们很快就会推出更新。
我创建了一篇博客文章来描述如何解决这个问题,直到新的CLI版本将通过修复发布:
https://blog.olandese.nl/2017/12/13/create-a-sharded-mongodb-in-azure-cosmos-db/
答案 1 :(得分:0)
您使用哪种浏览器在Portal中创建新文档?您可以尝试使用其他浏览器(Edge,Firefox,Chrome,Safari)或完全清理浏览器缓存并重试吗?