【摘要】

MongoDB 对于 List 结构中由若干字段组合而成的字符串数据有统计需求时,使用其 shell 脚本来实现有些复杂,而集算器 SPL 语言,则因拥有丰富的接口函数,实现就容易多了。若想了解更多,请前往乾学院:查询 MongoDB 子文档的 List 字段!

在 Mongodb 应用中,经常会在 List 结构中存入由若干字段组合而成的字符串数据。这种方式对于 Mongodb 的管理比较方便,如大量导入导出数据时,不用关注数据与字段的对齐问题,导入导出数据也比较快。不过,事物的特性往往存在两方面,有利有弊,这种方式在遇到统计计算需求时,就需要将字符串进行拆分,同时转换数据类型,再进行数据计算。这时用 mongodb shell 操作就比较麻烦了,而集算器 SPL 语言拥有丰富的接口函数,实现就容易多了。现在我们通过样例来看看如何实现。

Collction Cbettwen含有多级子文档,其中 dataList 是 List 型,含有多个字符串,每个字符串由多个数字组成。需要找出符合如下条件的字符串:第 1 个数字大于 6154 并小于等于6155。

Cbettwen的某个文档如下:

符合要求的字符串为:"6154.5,37.9,1.529,1.429,1.429","6155,30.4,1.505,1.532,1.543"。

集算器代码:

A2:使用find函数从MongoDB中取数,形成游标。collection是Cbettwen,过滤条件是空,取出_id之外的所有字段。

A3:找到符合条件的字符串。函数conj可对A2中每个文档的计算结果进行合并,~表示上级序表的每个成员。函数new可新建序表。#1表示序表的第1个字段。函数split可将字符串拆为序列,默认分隔符是逗号,@1表示只拆成两个成员,遇到第1个分隔符就返回。s表示将首个字符串转换成float类型的数值,然后进行比较筛选。

A4: 对游标进行批处理,获得内存数据,结果如下:

A5:关闭mongodb连接。

可以看见,SPL语言的实现相对mongodb来说,更加精简容易。

mongodb存list_查询 MongoDB 子文档的 List 字段相关推荐

  1. php mongodb排序查询,Mongodb 如何按照内嵌文档的某个字段排序?

    现有数据如下 { "_id" : ObjectId("5992c90beeb45634df1c2be4"), "name" : " ...

  2. MongoDB之聚合查询

    MongoDB之聚合查询 MongoDB普通查询播客:https://blog.csdn.net/sinat_32366329/article/details/81784562 聚合框架是MongoD ...

  3. ElasticSearch 7.6 多子文档过滤查询

    一.es 7.x 父子文档的 field 及官方文档地址 我找了半天,原来官方本来就有教程,只不过专有名词没用对,所以在找官方文档的时候,一直徘徊不前,不说了,先去弄写代码了.后面有时间了在继续写. ...

  4. azure 入门_Azure Cosmos DB中的子文档入门

    azure 入门 As we've worked with Azure Cosmos DB, we've seen that we can store data within fields and t ...

  5. mongodb 子文档排序_猫鼬101:基础知识,子文档和人口简介

    mongodb 子文档排序 Mongoose is a library that makes MongoDB easier to use. It does two things: Mongoose是一 ...

  6. Python+Streamlit aggrid+MongoDB GridFS构建低代码文档管理应用(文档查询下载实用篇)

    1. Sreamlit aggrid简介 Sreamlit aggrid是Streamlit的Ag-Grid组件的实现,在Python Streamlit框架下,更加灵活的使用表格,包括分组.排序.编 ...

  7. MongoDB中的子文档批量更新

    Mongodb 3.6版本的福利好吧! 谢谢观看,转载请标注来源Thanks!©PerfumerKarma 官网文档地址: https://docs.mongodb.com/manual/refere ...

  8. MongoDB 进阶-关联查询

    [苏州需要工作的加我QQ,内推介绍费平分] MongoDB 进阶 1.数据库命令 a.命令的工作原理 drop命令,在shell中删除一个集合,执行db.refactor.drop().其实这个函数实 ...

  9. mongodb php代码实例,MongoDB文档的更新(php代码实例)

    MongoDB更新文档分为两大类: 文档替换,使用新文档完全替换掉旧文档 修改器,修改部分文档 文档替换 使用文档替换非常的简单,下面来看演示: $collect->insertOne(['na ...

最新文章

  1. 在线作图|如何绘制带分组的散点图
  2. 车牌识别学习资料整理
  3. 值得推荐的C/C++框架和库(转载)
  4. Python语言学习:利用python获取当前/上级/上上级目录路径(获取路径下的最后叶目录的文件名、合并两个不同路径下图片文件名等目录/路径案例、正确加载图片路径)之详细攻略
  5. LeetCode 439. 三元表达式解析器
  6. Spring IOC详解与配置
  7. 谁再问你“天天爬那些数据有什么用”,就把这5本书扔给他!
  8. node函数 python_成为Python大牛必须要掌握的高端语法(附链接代码)
  9. 谷歌用3亿张图做了个深度学习实验,结论:数据还是越大越好
  10. Codeforces Round #301 (Div. 2)
  11. PXE网络装机和kickstart无人值守
  12. 实变函数与计算机有关系吗,《复变函数与实变函数》
  13. 常用的18个免费论文文献网站,分享给大家
  14. java list随机取_java list随机抽取元素的案例
  15. pano2vr怎么制作漫游_如何制作全景图?Pano2VR制作FLASH全景图教程
  16. C#利用Magick图片压缩
  17. 加权平均数的例子_加权平均值计算器
  18. Ubuntu引导文件丢失,grub修复(附加重装显卡驱动方法)
  19. 新版电脑版微信终于可以用上小程序了
  20. 点击计算机 不支持此接口

热门文章

  1. SAP Spartacus cost center创建按钮的路由配置
  2. SAP Spartacus 重用组件cx-table的设计原理
  3. SAP UI5应用访问OData metadata的url和Destination
  4. SAP gateway系统和后台系统的OData双重cache机制
  5. SAP开源的持续集成-持续交付的解决方案
  6. Angular self study 1 - Bootstrap
  7. 快速找到thtmlbUtil的定义位置
  8. 如何debug web worker
  9. windows10大瘦身 - Chrome文件夹下可以删除的临时js文件
  10. 如何启用nodejs request模块的调试模式