根据documentation,我正在尝试为必须满足两个不同条件的Spring MongoRepository方法获取一个工作名称。用简单的话来说,查询听起来像是:“ 通过他的id查找确定的对象,它是我的一个,或者我想共享它
对象:
{
"_id" : ObjectId("5c497..."),
"owner" : "myUserId",
"shared" : false,
}
查询:
db.getCollection('collection').find({$or : [
{ $and : [ { '_id' : ObjectId("5c497...") }, { 'owner' : 'myUserId' } ] },
{ $and : [ { '_id' : ObjectId("5c497...") }, { 'shared' : true } ] }
]})
我用@Query
@Query("{\$or: [{\$and: [{'_id' : ?0}, {'owner' : ?1}]}, {\$and: [{'_id' : ?0}, {'shared' : true}]} ]}")
fun findIfAvailable(id: ObjectId, owner: String, shared: Boolean = true): Mono<MyObj>
但是现在,我想知道是否可以编写一种方法名称来简化代码(并学习如何使用它)。
我尝试失败了findByIdAndOwnerOrShared
,findByIdAndOwnerOrIdAndShared
,等等
谢谢