mongodb中数据类型的坑-程序员宅基地

技术标签: 数据库  

在mongodb中,我们给每个文档插入数据的时候,mongodb自动会为我们插入的数据创建数据类型。由于mongodb是一个非结构化的数据存储系统,因此在文档中你可以随意插入不同类型的字段,这和MySQL有很大的区别(MySQL是结构化类型存储,要求对应的字段的数据类型相同)。在mongodb的图形化管理页面,来看看数据库中字段所对应的数据类型。

由于有数据类型的存在,这就要求我们在使用的mongodb查询的时候需要注意一些情况了。例如在通过form_id 查询一些数据时就应该注意。我们从上面可以看出,form_id 是一个整型,因此我们在使用mongodb查询的时候就应该注意传给form_id的数据应该为一个整型数据。

例如,我在使用数组进行查询的时候,就犯了这个错误。

       $form_id_arr = explode(',', $form_id);
        var_dump($form_id_arr);
        //explode()处理之后,数组中的值为字符串类型,但是mongodb中对于数据的类型十分的严格,form_id 对应的类型为整型,因此数组中的值也要转换成整型
        for ($i=0; $i <count($form_id_arr) ; $i++) { 
            $form_id_arr[$i] = intval($form_id_arr[$i]);
        }
        var_dump($form_id_arr);

假如我从前台获取的form_id 是一个字符串 ”99,98,97,96“ 如果直接使用explode() 进行转换成数组,再去查询,其实是错误的,因为数组中存入的是数字字符串,不是一个整型的数据。

在此强烈建议利用var_dump()函数来进行变量的打印,它能够打印出每个数据的类型。

我分别在for循环处理之前与之后分别进行了打印。

看一下打印的结果。

可以很明显的发现,转换之后的数组才是我查询所需要的数组。

end

 

转载于:https://www.cnblogs.com/xs-yqz/p/6064757.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33827965/article/details/94023862

智能推荐

.net资源站点汇总-程序员宅基地

文章浏览阅读1.1k次。.net资源站点汇总名称:快速入门地址:http://chs.gotdotnet.com/quickstart/描述:本站点是微软.NET技术的快速入门网站,我们不必再安装.NET Framework中的快速入门示例程序,直接在网上查看此示例即看。****************************************************名称:微软官方.NET指导站点地址:ht

Efficient Zero-Knowledge Arguments for Arithmetic Circuits in the Discrete Log Setting学习笔记-程序员宅基地

文章浏览阅读1.2k次。1. 引言Bootle和Groth等人2016年论文《Efficient Zero-Knowledge Arguments for Arithmetic Circuits in the Discrete Log Setting》。_efficient zero-knowledge arguments for arithmetic circuits in the discrete l

【计算机毕业设计】070校园代购服务订单管理系统_校园代购用户分析-程序员宅基地

文章浏览阅读155次。在新发展的时代,众多的软件被开发出来,给用户带来了很大的选择余地,而且学生越来越追求更个性的需求。在这种时代背景下,学生对校园代购服务订单管理越来越重视,更好的实现校园代购服务的有效发挥,本文将通过校园代购服务订单管理系统的信息,分析在日常生活中对代购服务存在哪些问题探讨出进一步提升工作效率,管理能力的对策。系统采用了java技术,将所有模块采用以浏览器交互的模式,选择MySQL作为系统的数据库,开发工具选择eclipse来进行系统的设计。基本实现了校园代购服务订单管理系统应有的主要功能模块,本系统有管_校园代购用户分析

分支限界法—任务分配问题_分支限界法解决作业分配问题 oj-程序员宅基地

文章浏览阅读4.5k次,点赞6次,收藏54次。题目描述分配问题要求将n个任务分配给n给人,每个人完成任务的代价不同,要求分配的结果最优,此题可以使用回溯求解。简要分析和设计假设存在四个人a,b,c,d,任务1,任务2,任务3,任务4,和对应的代价矩阵如下:采用分支界限法,需要计算最优边界Lb,Lb=已分配任务的代价+剩余未分配任务中最小的代价,然后构造状态空间树,上面例子的状态空间树如下:开始节点表示还未给任何人分配任务,然后在开始节点的基础上寻找可扩展节点。最开始的start中的lb=每行最小之和(2+3+1+4=10)由于此时a有四种选_分支限界法解决作业分配问题 oj

android studio开发计算器_android开发计算-程序员宅基地

文章浏览阅读1.5k次。一个简易的计算器,边学边写,还有很多不足希望多多指教先看布局,整体线性布局,上面两个TextView,一个存放计算过程,一个给出结果,然后一个table布局,button没有声明在xml里,用Java写的,好处是比较方便,坏处是我不会怎么让button适应屏幕,看起来有点丑。<?xml version="1.0" encoding="utf-8"?><android.sup..._android开发计算

基于matlab的2PSK的系统仿真_倒π现象-程序员宅基地

文章浏览阅读7.3k次,点赞12次,收藏59次。由于2PSK的幅度是恒定的,必须进行相干解调。经过带通滤波的信号在相乘器中与本地载波相乘,然后用低通滤波器滤除高频分量,在进行抽样判决。判决器是按极性来判决的。即正抽样值判为1,负抽样值判为0。2PSK信号的相干解调原理图如图2-4所示,各点的波形如图2-5所示。由于2PSK信号的载波回复过程中存在着180°的相位模糊,即恢复的本地载波与所需相干载波可能相同,也可能相反,这种相位关系的不确定性将会造成解调出的数字基带信号与发送的基带信号正好相反,即“1”变成“0”吗“0”变成“1”,判决器输出数字信号全_倒π现象

随便推点

ai人工智能_11条人工智能原则-程序员宅基地

文章浏览阅读874次。ai人工智能If not, how do we teach values to an autonomous intelligence? Can we codify them or simply enter it somewhere in the system? Is it more of an iterative process where we will correct parameters o..._人工智能遵循原则

深入了解与全面解析华为认证(HCIA/HCIP/HCIE)-程序员宅基地

文章浏览阅读395次,点赞14次,收藏5次。华为认证是华为技术实力的体现,也是个人职业竞争力的重要体现。通过华为认证,可以帮助我们更好地规划自己的职业发展道路,提升自己的专业技能和综合素质,为未来的职业发展打下坚实的基础。

java线程的中断(interrupt)_java interrupted-程序员宅基地

文章浏览阅读4.1k次,点赞5次,收藏15次。一个线程在未正常结束之前, 被强制终止是很危险的事情. 因为它可能带来完全预料不到的严重后果比如会带着自己所持有的锁而永远的休眠,迟迟不归还锁等。 所以你看到Thread.suspend, Thread.stop等方法都被Deprecated了那么不能直接把一个线程搞挂掉, 但有时候又有必要让一个线程死掉, 或者让它结束某种等待的状态 该怎么办呢?一个比较优雅而安全的做法是:使用等待/通知机制或者给那个线程一个中断信号, 让它自己决定该怎么办。这里我们理解线程中断的使用场景和使用时的注意事项,最后使_java interrupted

easyui中 form combobox datagrid 等有回显功能的对象方法 onBeforeLoad 获取当前对象_easyui onbeforeload-程序员宅基地

文章浏览阅读4.8k次。&lt;!DOCTYPE html&gt;&lt;html&gt; &lt;head&gt; &lt;meta charset="UTF-8"&gt; &lt;title&gt;Validate Form on Submit - jQuery EasyUI Demo&lt;/title&gt; &lt;link rel=&qu_easyui onbeforeload

arcgis学习系列-6查询FeatureLayer_arcgis 4.x featurelayer query-程序员宅基地

文章浏览阅读435次。概述本文你将学习:如何对feature图层进行查询并添加图层到地图中。使用arcgis for javascript 你可以查询feature layer为你的应用程序检索一个子数据集。在这个方案中图层被引用但是没有加载到地图中。查询可以包含一个sql的where子句,几何特征和空间关系。创建Query之后,将其传递给Query Task,以便从feature层检索数据。当features返..._arcgis 4.x featurelayer query

【python】从Ensembl上,根据Array HumanMethylation450甲基化探针cg编号(比如cg13788592)获取位置_如何确定cg位点序列-程序员宅基地

文章浏览阅读798次。一篇专利1中提到多种癌种及对应的特异性CpG位点,想获取对应cg位点具体的位置或序列。专利中的一组CpG markers如下:需求就是:将这些cg编号作为文件输入,获取对应的序列和位置信息。_如何确定cg位点序列

推荐文章

热门文章

相关标签