Node.js 猫鼬鉴别器在数据库中如何发挥作用?
您好,我正在学习mongodb。我开始了解mongoose中的鉴别器。我试图从文档的角度理解它,但理解得不好。有人能用更好的方式解释吗??Node.js 猫鼬鉴别器在数据库中如何发挥作用?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,您好,我正在学习mongodb。我开始了解mongoose中的鉴别器。我试图从文档的角度理解它,但理解得不好。有人能用更好的方式解释吗?? 谢谢举个例子,您的项目有两个角色:一个是业务用户,另一个是普通用户。当然,业务用户应该有一些额外的字段,如开放时间、费用、占用率等,而您不会喜欢普通用户文档中的字段。然后,您可以创建一个单独的模型“业务”,扩展您的 用户模型由一个单独的键“userType”和所有业务逻辑触发 var mongoose = require("mongoose"); var S
谢谢举个例子,您的项目有两个角色:一个是业务用户,另一个是普通用户。当然,业务用户应该有一些额外的字段,如开放时间、费用、占用率等,而您不会喜欢普通用户文档中的字段。然后,您可以创建一个单独的模型“业务”,扩展您的 用户模型由一个单独的键“userType”和所有业务逻辑触发
var mongoose = require("mongoose");
var Schema = mongoose.Schema;
var userSchema = new Schema({
name: {
type: String,
required: true,
message: 'Name is required',
},
},{
timestamps: {
createdAt: 'created',
updatedAt: 'updated'
},
discriminatorKey: 'userType',
id: false,
toJSON: {
getters: true,
virtuals: true
},
toObject: {
getters: true,
virtuals: true
}
});
var businessSchema= new Schema({
charges: {
type: Number,
default: 20
},
})
module.exports = mongoose.model('User', userSchema)
module.exports = User.discriminator('Business',businessSchema );
// in business logic/ controller try and debug results
var mongoose = require('mongoose');
const User = mongoose.model("User");
const Business = mongoose.model("Business");
User.findOne({}, (err, user)=>{
console.log(err, user);
})
Business.findOne({}, (err, biz)=>{
console.log(err, biz);
})
请注意,biz具有用户的所有属性+一些额外字段。在实现逻辑时也很容易理解。Thnks..基本上使用相同的模式,我们扩展了其他模型模式??是的。而且代码/逻辑看起来也不错,对于mecan u来说,可以更详细地说明鉴别器键??我从我的理解中解释了所有内容,解释得最好..我只想知道关于鉴别器密钥…是否需要给出鉴别器密钥的名称??