Я довольно новичок в работе с mongodb.Пока что мне очень нравится работать с mongogbb.Тем не менее, я изо всех сил пытаюсь заставить мою проверку mongodb работать.В документации есть довольно хороший пример для реализации упомянутой проверки.
db.createCollection("students", {
validator: {
$jsonSchema: {
bsonType: "object",
required: [ "name", "year", "major", "gpa" ],
properties: {
name: {
bsonType: "string",
description: "must be a string and is required"
},
gender: {
bsonType: "string",
description: "must be a string and is not required"
},
year: {
bsonType: "int",
minimum: 2017,
maximum: 3017,
exclusiveMaximum: false,
description: "must be an integer in [ 2017, 3017 ] and is required"
},
major: {
enum: [ "Math", "English", "Computer Science", "History", null ],
description: "can only be one of the enum values and is required"
},
gpa: {
bsonType: [ "double" ],
minimum: 0,
description: "must be a double and is required"
}
}
}
}
})
Вышеупомянутый пример, который я пытался реализовать с помощью mongo-java-driver 3.3.0
public PlayerCrudManager(String collection) {
super(collection);
/** Create validation schema */
Bson forename = Filters.type("forename", BsonType.STRING);
Bson surname = Filters.type("surname", BsonType.STRING);
Bson email = Filters.regex("email", "@*.*$");
Bson password = Filters.type("passwordHash", BsonType.STRING);
Bson biography = Filters.type("biography", BsonType.STRING);
Bson nickname = Filters.type("nickname", BsonType.STRING);
Bson lokSafe = Filters.type("lokSafe", BsonType.BOOLEAN);
Bson captureQuickly = Filters.type("captureQuickly", BsonType.BOOLEAN);
Bson image = Filters.type("image", BsonType.STRING);
Bson timeStamp = Filters.type("timestamp", BsonType.TIMESTAMP);
Bson validator = Filters.and(forename, surname, email, password, biography, nickname, lokSafe, captureQuickly, image, timeStamp);
ValidationOptions validationOptions = new ValidationOptions().validator(validator);
super.getDb().createCollection(collection, new CreateCollectionOptions().validationOptions(validationOptions));
}
К сожалению, я хотел бы реализовать описание для каждого свойства, потому что янадеюсь получить ответ от Монго, какое поле вызвало сбой.Я правильно понимаю этот тег описания?Чтобы ясно мыслить.Моя главная цель - вставить любой json в монго и получить ответ, где указаны неправильные поля.