当我对嵌入式Mongo运行任何包含$expr操作的查询时,会出现以下错误:
UncategorizedMongoDbException: Query failed with error code 2 and error message 'unknown top level operator: $expr' on server
命令对我的本地mongo实例运行正常。
这是我使用的嵌入式mongo版本:testCompile('de.flapdoodle.embed:de.flapdoodle.embed.mongo:2.1.1')
这是供参考的查询:
Criteria.where("$expr").ne(Arrays.asList("$val.a", "$val.b"))
答案 0 :(得分:0)
找到了。
flapdoodle
正在下载默认情况下不具有该功能的Mongodb版本。
您可以通过在
中指定以下内容来覆盖默认版本 src/test/resources/application.properties
spring.mongodb.embedded.version=3.6.4
spring.mongodb.embedded.features=SYNC_DELAY,NO_HTTP_INTERFACE_ARG,ONLY_WITH_SSL