将文档插入使用CLI创建的MongoDB分片集合时出错

时间:2017-12-01 10:42:46

标签: mongodb azure-cosmosdb sharding

使用最新的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插入文档时没有任何反应,文档在插入时挂起:

enter image description here

使用MongoB.Drivers nuget包从C#库插入文档也会失败,收到错误:

“文档不包含分片键”

显然我的文档包含分片键属性“TaskId”

如果我从Portal中的UI创建相同类型的集合,一切正常,也可以在C#中使用相同的代码

以下是两个集合设置的屏幕截图,您可以看到它们是相同的:

enter image description here

enter image description here 集合“fromui”是从门户网站UI创建的,有了这一个,一切正常,从门户网站插入文档,以及从C#插入。

集合“fromcli”是使用上面的CLI脚本创建的,并插入一个根本不起作用的文档。

2 个答案:

答案 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)或完全清理浏览器缓存并重试吗?