如何通过_id查询mongo db?

How to query mongo db by _id?

我正在使用 MongoDB 和 Spring。我想通过_id查询数据库。

目前我有这个查询:

Query q = new Query(Criteria.where("_id").is(someId).and("deleted").is(false));

但这不知何故给了我 WhosebugError。这个查询有什么问题?或者更好的方法是什么?

使用 $and 运算符 Criteria.andOperator() 为所有提供的条件创建显式 AND 查询而不是链式查询,如下所示:

Query q = new Query(
    new Criteria().andOperator(
        Criteria.where("_id").is(someId),
        Criteria.where("deleted").is("false")
    )
);

这通常用于无法使用 Criteria.and() 将多个条件添加到同一字段的情况,例如

Query q = new Query();
q.addCriteria(Criteria.where("age").lt(40).and("age").gt(10));

会引发错误,因此解决方法是将 Criteria.andOperator() 用作

Query q = new Query();
q.addCriteria(
    Criteria.where("age").exists(true).andOperator(
        Criteria.where("age").gt(10),
        Criteria.where("age").lt(40)
    )
);