Я начинаю использовать драйвер узла MongoDB и не могу заставить работать проверку вообще.
Я создал следующие объекты проверки с использованием запроса:
validator: { $in: [
{ name: { $type: "string" } }
]}
И этоСхема JSON:
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name"],
properties: {
name: {
bsonType: "string",
description: "is required and must be a string"
}
}
}
}
Затем, если я попытаюсь вставить следующий документ с этой структурой {name: 2}
, он будет добавлен без проверки вообще.
Я прочитал монго иДрайвер узла документирует проверку документа и не может найти способ проверить это.В настоящее время я использую Mongo версии 3.6.7 и драйвер узла версии 3.1.4 на экспресс-сервере версии 4.16.3.
Это весь код:
// create a single user
const createSingleUser = (client, db) => {
db.collection("users").insertOne({
name: 2
}, (err, response) => {
if (err) console.warn(err);
console.log("new user added!!!!");
client.close();
}); // insert one
};
// create collection and add validator
const createUserCollection = client => {
const MongoDriverData = client.db("MongoDriverData");
// create the collection and add validation
MongoDriverData.createCollection( "users", {
validator: {
$jsonSchema: {
bsonType: "object",
required: ["name"],
properties: {
name: {
bsonType: "string",
description: "is required and must be a string"
}
}
}
}, // validator
validationAction: "error"
}, (err, results) => {
console.log( "Collection created!!!" );
// now insert a user
createSingleUser(client, MongoDriverData);
});
};