【发布时间】:2018-10-14 14:50:39
【问题描述】:
我想使用带有 JSON Schema 验证器选项的 Spring-boot 在 Mongo 中定义一个 集合 (https://docs.mongodb.com/manual/core/schema-validation/#json-schema),我不想要 JSR-303 Bean 验证(这不是有效答案Spring data mongoDb not null annotation like Spring data Jpa),但在创建集合时定义一个使用 CollectionInfos() 在 JSON 中显示的选项。
例如,如果我定义一个 Account 模型类喜欢:
public class Account {
@Id
private String id;
private String name;
private String surname;
@NotNull
private String username;
}
我希望该集合具有,使用 db.getCollectionInfos(),json 喜欢:
[
{
"name" : "account",
"type" : "collection",
"options" : {
"validator" : {
"$jsonSchema" : {
"bsonType" : "object",
"required" : [
"username"
]
}
}
},
"info" : {
"readOnly" : false,
"uuid" : UUID("979cdc4b-d6f3-4aef-bc89-3eee812773a5")
},
"idIndex" : {
"v" : 2,
"key" : {
"_id" : 1
},
"name" : "_id_",
"ns" : "databaseName.account"
}
}
]
该过程可能类似于 spring.jpa.hibernate.ddl-auto = create,因为它在模式级别定义规则,而不类似于在应用程序中定义规则的 Bean 验证器水平。
【问题讨论】:
-
MongoDB 中服务器上的模式验证是“非常新的”,
$jsonSchema“查询运算符”本身实际上只有几个月的时间在野外流通。向 spring-mongo 添加“新功能”传统上是“慢节奏”的,但它不是一个官方的 MongoDB 项目,因此是一个“爱心的社区劳动”。如果您没有看到文档中提到的功能,那么它不存在。他们可能只是接受自愿的拉取请求 -
你的问题是什么?
-
@BrentR 我希望 spring-data-mongo 从模型开始自动定义 JSON Schema
标签: java spring mongodb spring-boot spring-data-mongodb