virtual提供了更方便的一些扩展属性或者关联数据api,但是当我在设置后发现不工作,原来代码如下

const _schema = new Schema({creator: { type: Schema.Types.ObjectId, ref: 'Users' },title: { type: String, default: '' },file: { type: String },remark: { type: String, default: '' },updateAt: { type: Date, default: Date.now },createAt: { type: Date, default: Date.now },count: { type: Number, default: 0 },enable: { type: Boolean, default: true },//状态status: {type: Number,required: true,default: 0,},
});_schema.virtual('counter', {ref: 'xxx',localField: '_id', // Find people where `localField`foreignField: 'group', // is equal to `foreignField`count: true, // And only get the number of docs
});

issue关联:https://stackoverflow.com/questions/48421489/mongoose-virtual-not-working

解决方案,需要在2个序列化方法中开启支持

_schema.set('toObject', { virtuals: true });
_schema.set('toJSON', { virtuals: true });

注意

开启后,如果是普通属性拼接没有性能问题,如果是外键关联,注意序列化产生的一系列性能问题,合理使用。

QA:mongoose中设置virtual后不工作问题相关推荐

  1. el-table中设置fixed后表格错位

    el-table中设置fixed后表格错位 表格错位图片 代码 表格错位图片 图片: 错位原因: 在设置fixed后,横向的滚动条的高度没有占用设置了fixed属性列的高度,导致每次Y轴的滚动条滑动到 ...

  2. android RadioGroup中设置selector后出现多个别选中的RadioButton的解决办法

    在一个RadioGroup组中假如有三个或者以上的RadioButton,当然你需要给这些RadioButton设置selector.设置其中的一个为默认选中状态(在xml中设置).当程序在手机上运行 ...

  3. WSL2中设置DNS后重启终端又失效的解决方法

    转载地址:https://www.xieshasha.love/wsldns.iiMemory WSL2 用着是挺好的,就是发现了一个问题,郁闷了好久,修改/etc/resolv.conf可以自己设置 ...

  4. 用python处理excel数据做函数_如何使用python通过函数式编程完成excel中的数据处理及分析工作...

    Excel是数据分析中最常用的工具,本篇文章通过python与excel的功能对比介绍如何使用python通过函数式编程完成excel中的数据处理及分析工作.在Python中pandas库用于数据处理 ...

  5. 解决Button设置disabled后无法执行后台代码问题

    一.开始调式下面的程序,发现Button在js中设置disabled后无法执行后台代码(btnsave_Click)问题 <asp:Button ID="btnsave" r ...

  6. 为什么JavaScript仅在IE中打开开发人员工具一次后才能工作?

    IE9错误-JavaScript仅在打开开发人员工具一次后才能工作. 我们的网站为用户提供免费的pdf下载,并且具有简单的"输入密码下载"功能. 但是,它根本无法在Internet ...

  7. 如何在锐起无盘系统中设置所有工作禁止u盘的使用?

    如何在锐起无盘系统中设置所有工作禁止u盘的使用? 方法一.通过修改BIOS设置,可以直接屏蔽主板上的USB控制器,这个方法几乎适用于所有计算机.这里笔者以目前使用最为广泛的Award BIOS为例进行 ...

  8. 【Android 插件化】Hook 插件化框架 ( 合并 “插件包“ 与 “宿主“ 中的 Element[] dexElements | 设置合并后的 Element[] 数组 )

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

  9. 大疆Onboard SDK开发中连接飞控后串口设置与开机自启动

    大疆Onboard SDK开发中连接飞控后串口设置与开机自启动 Manifold/TX2/Linux 下相关设置 1.设置程序上电自动执行 设置程序上电自动执行,即为设置开机自动运行可执行文件,Man ...

  10. Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了

    Mac上鼠标滚轮方向是和Win相反的,系统中设置后触摸板的方向又跟着变了 想让MacBook触摸板和非原生的鼠标滚轮方向一致可以使用第三方应用Scroll Reverser 来解决. Scroll R ...

最新文章

  1. Python核心编程学习笔记(一)
  2. 深度学习预训练模型可解释性概览
  3. vue axios 发送get请求传递参数给后端失败_Java之Vue插件之Axios
  4. linux手机摩托,Linux操作系统触控智能机 摩托ZN4图赏
  5. linux虚拟光驱挂载方法,Linux操作系统下虚拟光驱(iso)的挂载
  6. 高通量数据中批次效应的鉴定和处理(三)- 如何设计尽量避免批次影响
  7. Python编程高手之路——第三章:数据类型
  8. 如何生成每秒百万级别的 HTTP 请求
  9. java 生成Excel开门篇
  10. php安装调式redis扩展,下载安装thinkphp5.0,调试Redis是否可以正常使用
  11. lingo12软件下载及lingo语言入门资源
  12. 魔兽世界提取CG最新教程
  13. Idea主菜单栏不见了怎么找回
  14. 【期末大作业】公益网站ps平面设计
  15. winscp使用教程 linux,WinSCP使用方法教程
  16. 洛谷P2619 [国家集训队]Tree I 题解
  17. VS2010开发体验系列之二 - 语言C#4.0
  18. 小白理解k-svd算法
  19. K-means中K值的选取
  20. Sublime Text 显示菜单栏

热门文章

  1. oracle 导入DMP数据 imp 10g
  2. 〔总结〕容易遗忘的JS知识点整理
  3. spring源码解析(一)---占位符解析替换
  4. IOS开发之Target-Action模式
  5. C# DataTable 按数字排序问题
  6. C#ORM系统 Moon.ORM使用方法
  7. 中国ERP软件发展趋势
  8. LINQ分组查询统计
  9. 4.业务架构·应用架构·数据架构实战 --- 业务驱动的应用架构设计
  10. 42.Linux/Unix 系统编程手册(下) -- 共享库高级特性