Mongodb - 为现有集合添加架构

Posted

技术标签:

【中文标题】Mongodb - 为现有集合添加架构【英文标题】:Mongodb - Add Schema for existing collection 【发布时间】:2019-07-28 06:24:35 【问题描述】:

我的 MongoDB 中有一个包含 1300 万条记录的集合。不幸的是,当我创建这个集合时,并没有为它创建任何模式。我想知道是否有任何方法可以添加 JSON 模式,而不是备份整个数据库、创建模式并上传所有数据。

【问题讨论】:

【参考方案1】:

您可以使用 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"
 )

【讨论】:

如何使用 MongoDb Driver 在 C# 中运行它? 仅供参考:$jsonSchema 文档:docs.mongodb.com/manual/reference/operator/query/jsonSchema

以上是关于Mongodb - 为现有集合添加架构的主要内容,如果未能解决你的问题,请参考以下文章

向 MongoDB 集合中的每个文档添加新字段

MongoDB

mongodb的管理

MongoDB复制集架构搭建

mongodb 副本集合学习 window环境下/

使用 mongoid 查看 MongoDB 中的现有索引