mongodb 时间类型的数据空值转换?

mongodb里存入的时间类型的数据有可能为空,在用Criteria.where查询的时候,怎么将该空值时间转换成有效时间再进行查询
例:数据库里end_date有空值的情况

params.add(Criteria.where("end_date").gte(value);

回复
阅读 630
1 个回答

如果end_date字段有可能为空,可以使用Criteria.orOperator()方法来组合两个查询条件:

1、匹配end_date字段为空的文档;
2、匹配end_date字段大于或等于指定时间的文档。

具体实现如下:

Criteria criteria = new Criteria().orOperator(
        Criteria.where("end_date").exists(false),
        Criteria.where("end_date").gte(value)
);
params.add(criteria);

在上述代码中,Criteria.where("end_date").exists(false)表示匹配end_date字段不存在的文档,即空值时间。Criteria.where("end_date").gte(value)表示匹配end_date字段大于或等于指定时间的文档。

这样组合之后,可以匹配到end_date字段为空或者大于等于指定时间的文档。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏