spring data mongodb$where

bq3bfh9z  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(320)

我试图建立一个mongo条件,其中搜索值必须等于 FIELD1 + "-" + FIELD2 :我尝试过的:

Criteria.where("$where").is("this." + SOFTWARE_NAME + " + '-' + this." + SOFTWARE_VERSION " ==  '" + value + "'");

但是当我用这个条件运行一个查询时,我得到了一个异常:
org.springframework.data.mongodb.uncategorizedmongodbexception:命令失败,错误为2(badvalue):“在此上下文中不允许使用$where”hostname:17091. 完整响应是{“operationtime”:{“$timestamp”:{“t”:1614185267,“i”:1},“ok”:0.0,“errmsg”:“$where is not allowed in this context”,“code”:2,“codename”:“badvalue”
即使我把标准改成 "this." + SOFTWARE_NAME + " == this." + SOFTWARE_NAME 仍然返回相同的异常。我见过很多答案都有一个标准 where("$where") 为什么对我不起作用?
当我直接在mongo中运行该查询时:

{"$where" : "this.softwareName + '-' + this.softwareVersion == 'software-1.0.2'"}

一切都很好。
编辑
日志中的查询如下所示:
“loggername”:“org.springframework.data.mongodb.core.mongotemplate”,“message”:“正在执行集合中的计数:{“$where”:“this.softwarename+'-'+this.softwareversion=='software-1.0.2'”}。。。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题