【发布时间】:2022-01-13 02:05:18
【问题描述】:
我的存储库中有以下方法:
@Query(value = "{ '$or' : [ ?0 ]}") List<MyObject> findByObject(String lookupKeyValuePairs);
我将以下字符串作为输入传递给此方法。
字符串:{ 'keyone': 'one','keytwo': 'one' },{ 'keyone': 'two','keytwo': 'two' }
我希望查询是 { '$or' : [ { 'keyone': 'one','keytwo': 'one' },{ 'keyone': 'two','keytwo': 'two' } ]},但 spring 正在评估上述查询
org.springframework.data.mongodb.core.MongoTemplate - find using query: { "$or" : ["{ 'keyone': 'one','keytwo': 'one' },{ 'keyone': 'two','keytwo': 'two' }"] } fields: Document{{}} for class: MyClass in collection: MyCollection
并抛出以下异常:
Caused by: com.mongodb.MongoQueryException: Query failed with error code 2 and error message '$or/$and/$nor entries need to be full objects' on server
它是动态参数。键值对每次都会改变。这就是为什么我将整个内容作为字符串传递。
谁能帮忙指出问题出在哪里?
【问题讨论】: