ConfusedDeer Asked: 2014-08-05 18:34:10 +0800 CST2014-08-05 18:34:10 +0800 CST 2014-08-05 18:34:10 +0800 CST 如何显式定义 MongoDB 集合的数据类型? 772 如何显式定义 MongoDB 集合的数据类型? 我知道在 Mongo 中,如果集合不存在,它将在您插入文档时创建它,但我事先知道集合的字段和数据类型,我想创建它。我使用以下方法创建了一个示例集合: db.createCollection("log", { capped : true, size : 5242880, max : 5000 } ) 根据MongoDB 文档中的这个文档,MongoDB 中有各种数据类型,但同样,如何为 MongoDB 集合显式定义数据类型? mongodb 3 个回答 Voted Sergio Rodriguez 2016-08-04T14:31:42+08:002016-08-04T14:31:42+08:00 使用 mongoDB 文档验证器。它是在 3.2 版中引入的,允许您在更新和插入期间验证文档。它需要在创建集合时定义。 您可以像这样定义集合的数据类型: db.createCollection( "log", { validator: { $and: [ { capped: { $type: "bool" } }, { size: { $type: "int" } }, { max: { $type: "int" } } ] } } ) 文档验证器支持类型: https://docs.mongodb.com/manual/reference/operator/query/type/ 关于文档验证器的官方信息: https://docs.mongodb.com/manual/core/document-validation/ Martin 2014-08-06T05:08:49+08:002014-08-06T05:08:49+08:00 MongoDB 是无模式的,因此谈论具有字段和数据类型的集合是没有意义的。如果您希望集合中的文档具有特定字段,则必须在自己的代码中处理它 - MongoDB 无法帮助您。 Best Answer Manchuwook 2014-08-07T08:50:43+08:002014-08-07T08:50:43+08:00 不久前我发现了这一点,因为它可以根据模式验证 json 数据。但是,如果你想做这样的事情,你可以在数据库中的 javascript 中做一些事情。
使用 mongoDB 文档验证器。它是在 3.2 版中引入的,允许您在更新和插入期间验证文档。它需要在创建集合时定义。
您可以像这样定义集合的数据类型:
文档验证器支持类型:
https://docs.mongodb.com/manual/reference/operator/query/type/
关于文档验证器的官方信息:
https://docs.mongodb.com/manual/core/document-validation/
MongoDB 是无模式的,因此谈论具有字段和数据类型的集合是没有意义的。如果您希望集合中的文档具有特定字段,则必须在自己的代码中处理它 - MongoDB 无法帮助您。
不久前我发现了这一点,因为它可以根据模式验证 json 数据。但是,如果你想做这样的事情,你可以在数据库中的 javascript 中做一些事情。