我有一个mongo查询我想作为Spring Mongo存储库实现
db.collection.find({ 'items':
{ $elemmatch: {
'refund.$id' : ObjectId('5638cab2e4b07ff212618d7e')
}
}
})
我的存储库界面是
@Query("{ 'items': { $elemmatch: { 'refund.$id' : ObjectId(?0) } } }")
RMA findRMAByItemrefund(String refundId);
它抛出JSONParseException
Caused by: com.mongodb.util.JSONParseException:
{ 'items': { $elemmatch: { 'refund.$id' : ObjectId("_param_0") } } }
^
at com.mongodb.util.JSONParser.parse(JSON.java:216)
解决方法:
试试这个
@Query("{ 'items': { $elemmatch: { 'refund.id' : ?0 } } }")
RMA findRMAByItemrefund(String refundId);
根据我的经验,?0应该是独立的,不能用作mongo函数参数.
此外,$id是您自己的假设,或者该字段实际存储为$id.如果没有,我将使用refund.id
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。