Монго: Создать уникальный текстовый индекс - PullRequest
0 голосов
/ 25 июня 2018

Попытка создать в Mongo индекс, который требует, чтобы ключ был уникальным, а значение - типом текстового поля.

Я создаю индекс:

db.collection.createIndex({id: 'text'}, {unique: true})`

Я вставляю свою первую запись:

db.collection.insert({id: '1'})

Я вставляю вторую запись с идентификатором 1 (целое число) и ожидаю ошибки (что-то вроде: «идентификатор не может быть целым числом!»)

db.collection.insert({id: 1})

Как я могу убедиться, что в поле "id" разрешены только строки и что при попытке вставить целое число возникает ошибка?

1 Ответ

0 голосов
/ 25 июня 2018

Инструмент для проверки правильности введенных типов данных: SchemaValidation .

В вашем конкретном случае это должно быть что-то вроде этого:

db.runCommand( {
   collMod: "collection",
   validator: { $jsonSchema: {
      bsonType: "object",
      required: [ "id" ],
      properties: {
         id: {
            bsonType: "string",
            description: "must be a string and is required"
         }
      }
   } }
} )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...