我试图建立一个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'”}。。。
暂无答案!
目前还没有任何答案,快来回答吧!