猫鼬鉴别器在数据库中有何帮助? [关闭]

2023-12-12

你好,我正在学习 mongodb。我了解了 mongoose 中的鉴别器。我试图从文档方面理解它,但不太理解。任何人都可以用更好的方式解释吗? 谢谢


举个例子,您的项目有两个角色,一是业务用户,二是普通用户。某些商业用户应该有一些额外的字段,例如开放时间、费用、占用率等,而您不会喜欢普通用户文档中的那些字段。那么您可以创建一个单独的模型“业务”来扩展您的 用户”模型由分隔键“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 具有用户的所有属性 + 一些额外的字段。实现逻辑也很容易理解。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

猫鼬鉴别器在数据库中有何帮助? [关闭] 的相关文章

随机推荐

  • 数据描述符和非数据描述符的正确定义是哪一个?

    它们都是来自文档的Python 第一个 says 如果一个对象定义了两者 get and set 它被认为是一个数据描述符 仅定义的描述符 get 称为非数据描述符 它们通常用于方法 但也可能有其他用途 第二个 says 如果描述符定义 s
  • @aspnet_Membership_CreateUser 的密码

    应用 书呆子晚餐 该 SP 用于为新创建的用户插入密码 我试图找出应用程序代码中 Password 的来源 因为它是提供给该 SP 的 我在应用程序级别上查找它 但在应用程序级别上找不到它 有谁知道应用程序中哪里使用SP来传递 Passwo
  • WaitForSingleObject 不等待进程结束[重复]

    这个问题在这里已经有答案了 我想等待进程执行 calc exe 结束 但它不起作用 我的程序很快完成 而我的进程 calc exe 继续运行 我没有停止它 并且 WaitForSingleObject 立即返回 WAIT OBJECT 0
  • 比较Excel中的两列,插入空白行移动关联数据

    我在Excel中有大量数据需要按列进行匹配 具体来说 目前的数据如下 Column 1 Column 2 Column 3 1 1 aaaa 2 3 bbbb 3 4 cccc 4 理想情况下 我希望数据看起来像 Column 1 Colu
  • 如何在 Xamarin.Forms 中登录 Facebook

    我想制作一个 Xamarin Forms 项目 针对 iOS Android 和 Windows Phone 我的应用程序需要使用 Facebook 对用户进行身份验证 我应该独立实现每个平台的登录 还是使用手动流程 https devel
  • 在文本文件中打印 strace 命令的输出

    我需要将以下命令的结果写入文本文件 但该命令不起作用并且在使用时cat output txt什么也不给我看 请帮我解决这个问题吗 strace r y e read Program l o output txt thanks 为了将来的参考
  • 如何使用 C# 在 .Net 中的类型化对象列表中选择对象属性的所有值

    呃 我该如何解释这个 可能是一个简单的问题 但我的头脑很混乱 假设我有这样的课程 public class NestedObject public string NestedName get set public int NestedInt
  • 如何通过 C++ 检索已提交的内存

    我在这里找到了这个问题的几个答案 但没有一个能回答我的问题 我正在尝试追踪非托管 C 应用程序中的一些内存泄漏 通过阅读以下内容 内存 提交大小 似乎是监视内存使用情况时使用的最佳指标 http forum sysinternals com
  • 闭包语法

    function makeIncreaseByFunction increaseByAmount return function numberToIncrease return numberToIncrease increaseByAmou
  • 如何将响应数据中的特定数据保存到 csv 文件

    在我的 Web 服务测试计划中 我发送 SOAP 请求来创建用户 并在响应数据中发回用户名和唯一 ID 我想将该用户名和 uniqueid 保存到 CSV 文件中 谁能让我知道我怎样才能实现这一目标 您可以使用 Regex 后处理器提取数据
  • ClosedXML Excel 按多列中的值过滤行

    我有一个 Excel 文件 其中包含数千行和最多 BP 的列 我需要按 C 列和 BP 列中的特定值过滤所有这些行 我按照下面的代码测试了 ClosedXML 中的过滤器功能 当我将过滤器应用于一列时 一切正常 并且数据保存在新文件中 当我
  • 在同一测试中重用 pytest 夹具

    下面是使用的测试代码示例user用于设置测试的夹具 pytest fixture def user Setup db connection yield User email protected Close db connection def
  • 在子类的回调方法中调用父类的方法

    我有两个类 B 类扩展了 A 类 在 B 类中 我正在执行一些画布操作 因此需要调用回调来加载图像 在回调中我想调用父类的相同方法 但是 如果我将这行代码放入回调中 则会出现语法错误 Uncaught SyntaxError super 关
  • Scala 未来应用程序在完成之前终止

    只是试图让我的第一个 future 使用并运行 并进行类似于 Akka in Action MEAP 书中概述的示例的测试 我想调用一个网络服务并在将来返回结果 我正在使用 scalaxb 访问 Web 服务 我已经概述了下面的代码 但是当
  • 使用 Twilio SMS API,我可以在一篇文章中指定多个目标电话吗?

    Twilio 将长代码 SMS 限制为 1 次 秒 为了提高吞吐量 我将批次分成 5 个电话号码 我发现 Twilio API 的每个 HTTP POST 大约需要 0 5 秒 人们可能会认为使用 5 个 twilio 电话号码向 1000
  • 用于嵌套 Div 标签的 PHP 正则表达式

    我需要一个可以与 PHP 的 preg match all 一起使用的正则表达式来匹配 div 标签内的内容 div 看起来像这样 div Content div 到目前为止 我已经想出了这个正则表达式 它匹配所有 id t number
  • 如何计算firebase实时数据库中的键数

    如何在 firebase 函数的帮助下计算键的数量 在上面的情况下有 3 个 我正在使用 firebase 实时数据库 Firebase 实时数据库没有单独的计数操作 您必须下载父节点的整个快照 geoTag 然后计算应用程序代码中的子级数
  • C# - Json POST 请求已发送,但 PHP 服务器未收到

    我正在从 C Windows 表单应用程序向 OpenShift Red Hat 上托管的 PHP 服务器发送 HTTP 请求 我正在使用 POST 方法和 Json 数据 问题是 数据似乎已正确发送 我在wireshark中看到数据包 p
  • 如何将jax-ws服务部署到eclipse或tomcat?

    作为一名 Web 服务初学者 我已经尝试了 2 周来获得一个与 Maven Eclipse 和 Tomcat 一起使用的 hello World Web 服务 我放弃了让任何代码 wsdl 生成器工作的尝试 我遵循了本教程http myar
  • 猫鼬鉴别器在数据库中有何帮助? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 你好 我正在学习 mongodb 我了解了 mongoose 中的鉴别器 我试图从文档方面理解它 但不太理解 任何人都可以用更好的方式解释吗 谢谢 举个例子 您的项目有两个角色