Spring Data Mongo聚合和使用$ in在代码中失败

时间:2018-07-14 15:19:10

标签: spring spring-data-jpa spring-data-mongodb

我正在尝试使用in筛选包含嵌入式文档的数组。我创建的查询在Shell中工作正常。

但是spring数据抱怨$ in的无效使用

现在,如果调试并且我通过聚合将toString中生成的内容复制并粘贴到外壳中,它也可以工作,但仅在通过代码完成时有效。

"requirements" : { "$filter" : { "input" : "$requirements" , "as" : "requirement" , "cond" : { "$not" : [ { "$or" : [ { "$in" : [ "$$requirement" , [ { "id" : "req1" , "value" : "val1"}]]} , { "$in" : [ "$$requirement" , [ { "id" : "req2" , "value" : "val2"}]]} , { "$in" : [ "$$requirement" , [ { "id" : "req3" , "value" : "val3"}]]}}

{..
...
    "requirements" : [ 
        {
            "id" : "req1",
            "value" : "val1"
        }, 
        {
            "id" : "req2",
            "value" : "val2"
        }
    ]

..}

所以我想发送需求数组,并且只返回不在数组即查询中的requiremnts,因此$ not,$ or和$ in

0 个答案:

没有答案