MongoDB ShardingKey ошибка: документ не содержит ключ шарда для шаблона - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь настроить шардинг для mongoDB. Осколок успешно создан, но каждый раз, когда я пытаюсь заполнить коллекцию с помощью файла json, я получаю следующую ошибку: Документ не содержит ключ осколка для шаблона Document error

ImОбъявление шарда с помощью следующей команды:

sh.shardCollection("velo.Users",{Zipcode:1})

Sharding

mongoimport --host localhost --port 1000 --db velo --collection Users "path"

Это файл json, который я пытаюсь заполнить своей коллекцией:

{
"Users": [
{
    "Email": "Lars.Bouman@gmail.com",
    "Number": "156 ",
    "UserId": 1,
    "Zipcode": "2060",
    "Street": "Somméstraat",
    "City": "Antwerpen",
    "CountryCode": "BE",
    "Name": "Bouman Lars"
},
{
    "Email": "Julia.van.der.Zee@telenet.be",
    "Number": "43 ",
    "UserId": 2,
    "Zipcode": "2610",
    "Street": "Europalaan",
    "City": "Wilrijk (Antwerpen)",
    "CountryCode": "BE",
    "Name": "van der Zee Julia"
}       
]
}

Я уже пытался использовать "Users.Zipcode", но я получаю ту же ошибку.

Кто-нибудь знает, что я делаю неправильно? Заранее спасибо

1 Ответ

2 голосов
/ 24 октября 2019

Предполагая, что вы хотите, чтобы ваша защищенная коллекция содержала по одному пользователю на каждый документ, ваш json (помещенный в файл с именем Users.json в этом примере) должен быть

[
{
    "Email": "Lars.Bouman@gmail.com",
    "Number": "156 ",
    "UserId": 1,
    "Zipcode": "2060",
    "Street": "Somméstraat",
    "City": "Antwerpen",
    "CountryCode": "BE",
    "Name": "Bouman Lars"
},
{
    "Email": "Julia.van.der.Zee@telenet.be",
    "Number": "43 ",
    "UserId": 2,
    "Zipcode": "2610",
    "Street": "Europalaan",
    "City": "Wilrijk (Antwerpen)",
    "CountryCode": "BE",
    "Name": "van der Zee Julia"
}       
]

, а затем предполагая, что ваш jsonв файле с именем «Users.json» ваша команда mongoimport будет выглядеть следующим образом:

mongoimport --host localhost --port 1000 --db velo --collection Users --file=Users.json --jsonArray
...