【发布时间】:2019-07-28 06:24:35
【问题描述】:
我的 MongoDB 中有一个包含 1300 万条记录的集合。不幸的是,当我创建这个集合时,并没有为它创建任何模式。我想知道是否有任何方法可以添加 JSON 模式,而不是备份整个数据库、创建模式并上传所有数据。
【问题讨论】:
我的 MongoDB 中有一个包含 1300 万条记录的集合。不幸的是,当我创建这个集合时,并没有为它创建任何模式。我想知道是否有任何方法可以添加 JSON 模式,而不是备份整个数据库、创建模式并上传所有数据。
【问题讨论】:
您可以使用 collMod 命令将 JSON 架构应用到现有集合,以将新的 JSON 架构添加到集合 https://docs.mongodb.com/manual/core/schema-validation/。下面是一个例子。但是它只适用于新的写入操作,不会针对集合中的现有文档运行。
db.runCommand( {
collMod: "contacts",
validator: { $jsonSchema: {
bsonType: "object",
required: [ "phone", "name" ],
properties: {
phone: {
bsonType: "string",
description: "must be a string and is required"
},
name: {
bsonType: "string",
description: "must be a string and is required"
}
}
} },
validationLevel: "moderate"
} )
【讨论】:
$jsonSchema 文档:docs.mongodb.com/manual/reference/operator/query/jsonSchema