我有Mongo文档
{
"_id" : ObjectId("5e4c4c0935f4115dfc5540c2"),
"code" : "ABC"
}
以及其他SO线程似乎无法对Id执行正则表达式,因为它具有hexString。所以我要用ObjectId
@Query("{'code': {$regex : ?0, $options: 'i'}, '_id': ?1}")
Page<Pack> findByCodeAndId(String code, ObjectId objectId, Pageable pageable);
现在作为查询参数或可选参数,我在将传递的ID转换为ObjectId
ObjectId objectId = null;
if (ObjectId.isValid(id)) {
objectId = new ObjectId(id);
}
现在针对请求{code: null, id: null}
,我想带前10个文档,因为它们是可选的,但是当以null
的形式ObjectId
传递给查询时,查询不起作用
也尝试过ObjectId objectId = new ObjectId()
,但是它会生成一个随机的haxString
并在id
为null
时给出空记录