Mongo:创建唯一的文本索引

时间:2018-06-25 14:22:19

标签: mongodb

尝试在Mongo中建立索引,该索引要求键必须是唯一的,并且值必须是文本字段类型。

我创建索引:

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

我插入我的第一条记录:

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

我插入第二个ID为1(整数)的记录,并期望出现错误(类似:“ id不能为整数!”)

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

如何确保在“ id”字段中仅允许使用字符串,并且在有人尝试插入整数时引发错误?

1 个答案:

答案 0 :(得分:1)

确保插入正确数据类型的工具是SchemaValidation

在您的特定情况下,它必须是这样的:

db.runCommand( {
   collMod: "collection",
   validator: { $jsonSchema: {
      bsonType: "object",
      required: [ "id" ],
      properties: {
         id: {
            bsonType: "string",
            description: "must be a string and is required"
         }
      }
   } }
} )