MongoDB批量操作时字段为null时不会入库

  今天在Java后端批量插入数据至MongoDB后,在MongoDB数据库中发现某个字段没有成功入库,一查看代码,在List的元素对象中是有这个字段的,不知为啥就没有入库了。

  (1)调试

  遇到此情况,赶紧调试一下代码,看看批量数据都是啥内容;经过单步跟踪,发现List的元素对象中这个字段的值都是null,初步怀疑是null值造成的。

  (2)验证

  既然怀疑是null值造成的,那么对该字段的值先进行判断,若是null值,那么就转变为空字符;经过这样处理后,再次运行代码,进入MongoDB数据库后查看,发现有这个字段的存在了,并且该字段的值都是空,这表明确实null值造成的。

  (3)小结

  在操作MongoDB数据时,若字段的值为null,可能会导致该字段不会入库,有关为何会这样,后续还得细究。

原文地址:https://www.cnblogs.com/bien94/p/12341029.html

时间: 2024-11-07 05:51:49

MongoDB批量操作时字段为null时不会入库的相关文章

json字段为null时输出空字符串

Map < String , Object > jsonMap = new HashMap< String , Object>(); jsonMap.put("a",1); jsonMap.put("b",""); jsonMap.put("c",null); jsonMap.put("d","wuzhuti.cn"); String str = JSONObje

数据库里面DataTime时间类型字段,如果为null时

tran.TransactionTime = bet.CreationDate.ToString() == "0001/1/1 0:00:00" ? DateTime.Now : bet.CreationDate; 数据库里面DataTime时间类型字段,如果为null时,查询出来时间值为"0001/1/1 0:00:00" 这是一个溢出SqlDateTime超出范围的时间值,将它再插入数据库时会报错的 数据库里面DataTime时间类型字段,如果为null时,布布

QSqlRecord字段值为null时注意事项

QSqlRecord在对应字段值为null时,QSqlRecord::value返回的QVariant是有效但为null(相当于使用QVariant(Type type)构造的),所以此时做对应类型的转换是可以成功的(如toInt)...转换后null结果会变成一个具体数值(如0),这样很可能导致程序出现错误(通常用-1作为无效值,0可能就会让实际为null的情况误入正常流程),使用QSqlRecord::value前对于可能为null的字段记得先调QSqlRecord::isNull判断下或者

ibatis插入操作时,允许为null的字段必须设置字段对应的类型

执行插入操作时遇到异常: --- Cause: java.sql.SQLException : 无效的列类型 <insert id="saveAccCheckRecord" parameterClass="AccCheck" > <selectKey resultClass="Long" keyProperty="id" > SELECT SEQ_INFO_AD_CN_RD_CK_ID.NEXTVAL

解决用 VB 中用 ADO 访问 数据库时 SQL 查询处理 Null 值的问题( 使用 iff(isNull(字段), 为空时的值,不为空时的值) 来处理)

程序的环境是 VB6 + ADO + Access,在用 SQL 语句查询时,希望把两个字段合并成一个字段,但其中一个字段 Null 值直接导致两个字段合并后也变成了 Null 值.之前只能用 VB 中的 IsNull 分别处理两个字段的值,前段时间想尝试用 SQL 语句直接解决,确一直未能成功, 差点放弃之际找到了答案,总结如下: 目的: 实现 Select ( 字段1 +  字段2 ) As A 问题: 字段2 如果为空值 (Null),则 不论字段1 的值是否为空,A 的值为空值 (Nul

numeric 转换为数据类型 (null) 时出现算术溢出错误

mssql数据同步到mysql时提示错误如下: 消息 8115,级别 16,状态 14,第 1 行 将 numeric 转换为数据类型 (null) 时出现算术溢出错误 问题分析如下: 1.数据字段类型限制超出最小最大值 2.mysql字段属性有个“unsigned”限制, 非负数

Mybatis:使用bean传值,当传入值为Null时,提示“无效的列类型”的解决办法

问题描述: 在使用mybatis对数据库执行更新操作时,parameterType为某个具体的bean,而bean中传入的参数为null时,抛出异常如下: org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.type.TypeException: Could not set parameters for mapping: ParameterMapping{property='pxh',

使用union all查询时字段不匹配解决办法

小问题,可能新手碰到也会被书上的定义限定思维,一时反应不过来. 定义: UNION 或UNION ALL 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. 场景: 当两个select的结果集个别字段有差别时需要UNION 或UNION ALL 合并. 解决办法: 某个结果集少字段可以用空值或固定值代替,使用别名达到列名一致要求. 如 要合并s

后台返回数据事null时怎么进行判断

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "Helvetica Neue"; color: #454545; min-height: 14.0px } span.s1 { font: 12.0px ".PingFang