MongoDB空字段和条件

时间:2015-08-05 09:28:42

标签: mongodb spring-data spring-data-mongodb

我有status集合,而且我还有Spring Data MongoDB查询:

Query query = new Query(Criteria.where("reviewed").is(false)
            .and("active").is(true)
            .orOperator(
                Criteria.where("status").is("pending"),
                Criteria.where("status").is("inprogress")
                    .and("time").lt(new Date())
            )
        );

现在status集合中的现有文档可能没有active, status, time个字段,在这种情况下,查询将返回0结果。我想让它们成为可选的。如果它们存在,它们将成为执行查询的一部分,否则必须忽略它们。

经过一番研究,我提出了以下问题:

Query query = new Query(Criteria.where("reviewed").is(false)
            .and("active").in(true, null)
            .orOperator(
                Criteria.where("status").in("pending", null),
                Criteria.where("status").in("inprogress", null)
                    .and("time").lt(new Date())
            )
        );

这是实现我想要的正确方法还是任何建议?

0 个答案:

没有答案