位置: 编程技术 - 正文

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)

  • 投资公司取得的投资收益属于销售额吗
  • 手机个人所得税app下载官网
  • 税务师考试要求核酸检测
  • 城建税的税目是哪些
  • 融资租入的固定资产需要计提折旧吗
  • 国内旅客运输票据
  • 应付职工薪酬月末怎么结转
  • 个体户每个月开10万会查吗
  • 小规模旅行社差额征税的账务处理
  • 商贸流通企业包括哪些
  • 有形动产租赁服务
  • 个人所得税补交税
  • 税控盘费用减免分录
  • 未实缴出资的股东退股
  • 固定资产递延所得税负债
  • 不含税劳务报酬怎么交税的
  • 劳务建筑公司一年可以赚多少
  • 专票丢了可以拿复印件在所得税前列支吗
  • 商品返点收入账务处理
  • 商场现金收入如何计算
  • 一般纳税人企业所得税税率2023
  • 公司年终分红如何入账
  • 每季度财务报表
  • 企业汇算清缴后还能更正吗
  • 向人力资源公司辞职怎么说
  • 减免增值税的优惠政策
  • Win10打开浏览器后自动弹出查找框
  • 公司投资理财产品
  • 合并报表长投和所有者权益抵消的原理
  • 怎么更新电脑系统win10
  • 高新企业研发费用会计分录
  • PHP:Memcached::getByKey()的用法_Memcached类
  • 贷款逾期的本金利息
  • win10系统安装详细步骤
  • php标识符
  • uni-app打包h5
  • 公司注销后所欠债怎么办
  • 负债大于资产能贷款吗
  • 蓝桥杯第十四届省赛获奖名单
  • 视听结合的景物描写
  • php隐藏图片地址
  • php搜索代码
  • 外贸公司主要是做什么产品
  • 下列关于纳税人发生兼营行为
  • 以下哪些企业需要填报
  • 银行手续费发票未到怎样做账
  • 有限责任公司分类
  • 企业之间支付的管理费指什么
  • 公司之间的往来账怎么做
  • 建筑安装个人所得税征收管理办法
  • SQL Server性能优化工具Profiler
  • 厂房出租没有开发票属于违法吗?
  • 发票系统怎么用
  • 个人转让不动产交印花税吗
  • 资金账簿印花税减半政策
  • 购入的技术服务作为成本
  • 应收账款和预收账款都是企业的债权
  • 收取招标代理费的规定
  • 企业代扣的个人所得税款收入属于哪个会计科目
  • 行政事业单位固定资产计提折旧
  • windows server 2008图片文件无法显示缩略图的解决方法
  • fedora linux安装教程
  • ipv6文件
  • win8系统怎么查看隐藏文件
  • linux如何关闭selinux
  • ubuntu独立显卡黑屏
  • mac itunes在哪儿
  • win8.
  • win10系统自定义设置
  • 常用的linux系统版本有哪些
  • linux清除ssh登录记录
  • cocos2dx怎么用啊
  • vs2010配置opengl
  • 新版unity
  • jquery选择器实例
  • 瀑布流软件
  • 重庆市地方税务局公告2016年第2号
  • 湖北省税务申报流程 个体户
  • 税务局有事业单位编制吗
  • 北京市国家税务局发票查询
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设