位置: 编程技术 - 正文

MongoDB进阶之动态字段设计详解(mongodb进阶与实战下载)

编辑:rootadmin

推荐整理分享MongoDB进阶之动态字段设计详解(mongodb进阶与实战下载),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mongodb基础知识,mongodb基础知识,mongodb入门教程,mongodb 实战,mongodb 实战,mongodb从入门到商业实战,mongodb 实战,mongodb 实战,内容如对您有帮助,希望把文章链接给更多的朋友!

本文主要介绍的是关于MongoDB动态字段设计的相关资料,分享出来供大家参考学习,需要的朋友们下面来一起看看详细的介绍吧。

适宜读者人群

MongoDB开发者

基础需求

产品: "我们要为现有的表单增加一个伟大的功能, 允许用户增加想要的字段"

技术目标version 1

存储动态表单数据(新增字段无需修改Schema)

首先讲一讲MongoDB支持的索引有哪几种

普通字段索引

内嵌文档索引

数组文档索引

看似上面只有都无法做到动态增加字段的功能

程序员A和程序员S发生如下对话:

程序猿A: "那么我们需要增加另外一个collection来存储动态的内容" 程序猿S: "但MongoDB对关联查询的支持很弱啊, 都没法关联排序, 要是后面产品说要加 排序筛选 的功能我们就懵逼了呀&#;&#; , 唉~ 早知如此就不用MongoDB了"

再重新审视需求

存储动态表单数据 需要支持筛选和排序

技术目标version2

MongoDB进阶之动态字段设计详解(mongodb进阶与实战下载)

增加字段同时还要可以索引

解决方案

使用数组来存储动态字段 增加描述collection用来记录用户的表单配置

存储结构如下:

注意!!! 当用户增加n个字段时, 描述collection同时增加n个文档

如何查询排序筛选呢

上面的例子可以看出, 即使用户未填写该字段值, 但我们依旧需要为它进行存储空值, 以保证我们所有的Document的form下第n个字段均为同一个控件, 这样我们就可以对字段进行筛选排序, 并且可索引

继续深入

产品: "我们需要允许用户增加下拉框和多选框, 同样需要筛选排序"

程序猿: "Fxxx"

那么这样的数据应该如何存储呢&#;

解决方案如下:

我们的value按照1,2,4,8...的二进制方式进行存储

用户选择单选框第一项, 则存1, 第二项则存2, 第三项则存4

用户选择多选框第一项+第三项:则存5, (1+4)

MongoDB为我们提供了强大的Aggregate功能, 其中包含了Bitwise Query Operators 功能, 包含$bitsAllSet ,$bitsAnySet , $bitsAllClear , $bitsAnyClear

以上完成了使用MongoDB动态字段设计的各种需求 &#;

总结

增加配置collection, 用来描述用户的配置 原始值需要存储空值 如需类似下拉框, 多选框时, 使用Bitwise Query Operators 来完成 MongoDB并没有那么弱, 也是可以满足复杂的数据需求的

好了,

标签: mongodb进阶与实战下载

本文链接地址:https://www.jiuchutong.com/biancheng/312643.html 转载请保留说明!

上一篇:mongoDB实现分页的方法(mongodb如何分片)

下一篇:window下mongodb在dos下服务器启动及连接(mongodb win7)

  • 减免税填到营业外收入哪一项
  • 个人买车交增值税吗
  • 计提增值税的会计凭证
  • 电子承兑到期了在哪里选择清算方式
  • 个税中房屋租赁日期写长跟写短
  • 发票可不可以部分冲红
  • 个人所得税算错
  • 主营业务收入计入
  • 食堂买菜无发票可以在费用中开支吗
  • 工会签约有什么好处
  • 没有抵扣的发票怎么入账
  • 房地产企业进项税额转出
  • 公司聚餐费用标准
  • 递延资产放在资产负债表哪里
  • 货款和发票金额不符
  • 行政单位要纳税吗
  • 居民企业分红免征企业所得税分录
  • 什么是法?法的本质特征是什么
  • 上缴税费总额包括个税吗?
  • 税局如何查无票收入
  • 一般纳税人外经证预缴怎样缴费
  • 待转销项税额会计分录
  • 订购维修设备零件怎么做账?
  • 收到人民政府寄来的ems
  • 营改增账务处理实例
  • 取得失控发票
  • 如果当月增值税进项比销项多怎么结转
  • 机器用润滑油怎么使用
  • 企业债券和公司债券
  • 代缴的五险一金能贷款吗
  • 公司流水账是会计做吗
  • 固定资产资产评估
  • 土地补偿款会议记录范文
  • php获取指定日期的时间戳
  • yolov8目标检测测试输出类别个数
  • phppublic function
  • 哪个光圈值最大
  • vericut9.0环境变量
  • 微信公众号服务平台
  • 什么是大语言模型(LLM)?
  • laravel5.2实现区分前后台用户登录的方法
  • php运用
  • 融资租赁租入固定资产是什么意思
  • 发票必须在什么时候开
  • 残疾人保障金计入哪个会计科目
  • 未按期兑现的合同缴纳印花税吗?
  • 一般纳税人招待费扣除标准
  • 生产车间发生的费用计入什么科目
  • 固定资产盘亏要改变资产原值吗
  • 汇算清缴纳税调整需要做账吗
  • 待摊费用和预提费用都属于资产类科目
  • 收到服务费发票可以计入什么科目
  • 将本月发生的制造费用在甲、乙产品之间
  • 购买生产原料的支出
  • 冲回上年度费用分录
  • 增值税年末必须要交吗
  • 税金及附加没有设置二级科目,有啥影响吗
  • 专家评审费需要上税吗
  • 支付工程款如何入账科目
  • 企业注销怎么回事
  • MySQL通过触发器解决数据库中表的行数限制详解及实例
  • win8系统如何激活
  • ubuntu ftp服务开启
  • 最新bios界面
  • xp系统开机后不停重启
  • 苹果MAC电脑怎么玩圣安地列斯
  • win7开始菜单中的程序图标修改了
  • 寒江孤影原文
  • 网卡流量怎么计算
  • unity 求角度
  • node搭建项目
  • python append、extend与insert的区别
  • 事务所是干什么的会计
  • 社保银行代扣收费吗
  • 地方税务局受谁领导
  • 佛山顺德人才房申请条件
  • 北京朝阳区国税局
  • 百旺税控人工客服电话
  • 税务实名认证如何操作
  • 申报农业项目的程序是什么?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设