我是纯 MongoDB 的新手,我对纯 MongoDB 有一些疑问。
1.纯MongoDB是否使用像Mongoose ODM这样的模式和模型?
如果您使用过 Mongoose ODM,您就会知道 Mongoose ODM 使用模式和模型来定义字段及其属性。像这样;
/* Dependencies */
const mongoose = require('mongoose');
/* Define the user schema */
const userSchema = new mongoose.Schema({
name: {
type: String,
required: true
},
lastname: {
type: String,
required: true
}
});
/* Define the model */
const User = mongoose.model('User', userSchema);
我们需要用它们的字段来定义模式和模型吗?
2.纯MongoDB有验证器吗?
例如,如果我们在模式中有一个字段;我们可以为字段定义一些属性,例如;
...
name: {
type: String, // Type built-in validator
required: true // Required built-in validator
},
points: {
type: Number, // Type built-in validator
min: 0, // Min (minimum) built-in validator
max: 100 // Max (maximum) built-in validator
},
verified: {
type: Boolean, // Type built-in validator
validate: { // Custom schema validator
validator: function(v) {
return this.points > 50;
},
message: 'You can not register!'
}
}
...
纯 MongoDB 是否支持任何验证器,或者我们在像这样的 CRUD 操作时定义它们;
function createUser(userData, db, callback) {
if(userData.name && typeof(userData.name) == 'string' && userData.username && typeof(userData.lastname) == 'string') { // Validator for object
const collection = db.collection('users');
collection.insertOne({
name: userData.name,
lastname: userData.lastname
}, function(err, result) {
if(err) callback(err, null);
console.log('One record writed!');
callback(null, result);
});
} else {
callback(new Error('You must enter name and lastname to register!', null));
}
}
我所有的问题都是关于这些的。谢谢...