Запрос документа Mongo с массивом карт в приложении SpringBoot - PullRequest
0 голосов
/ 16 октября 2018

У меня есть приложение SpringBoot с MongoDB.База данных имеет документы со структурой ниже.

Я пытаюсь написать метод в классе Repository (который расширяет MongoRepository), который позволит мне выбирать документы, где:

  1. GATE_1, GATE_2 и GATE_3 имеют значение true.
  2. GATE_1, GATE_2, GATE_3 - истина, а FEATURE_1 - истина.

Методы в классе репозитория в конечном итоге вызываются теми, кто находится в контроллере - по сути, это REST API, который предоставляет имена шлюзов, имена функцийи ожидаемые значения, для тех.Я посмотрел вокруг, но не нашел аналогичного вопроса.Если я пропустил уже заданный вопрос, отправьте меня на этот вопрос.

{
    "_id" : JUUID("80e5ab1b-cc46-48c2-b6f1-ef73db6b07d0"),
    "_class" : "com.mycompany.myservice.model.mymodel",
    "createDate" : ISODate("2018-10-15T18:54:52.000Z"),
    "field1Version" : "9850691",
    "field2Version" : "8950691",
    "field3Version" : "9967662",
    "field4Version" : "d047fb9",
    "type" : "META",
    "features" : [ 
        {
            "featureName" : "FEATURE_1",
            "featureValue" : "true",
            "createDate" : ISODate("2018-10-15T05:59:21.000Z")
        }
    ],
    "gates" : [ 
        {
            "gateName" : "GATE_1",
            "gateValue" : "true",
            "createDate" : ISODate("2018-10-15T05:59:21.000Z")
        }, 
        {
            "gateName" : "GATE_2",
            "gateValue" : "false",
            "createDate" : ISODate("2018-10-18T08:59:21.000Z")
        }, 
        {
            "gateName" : "GATE_3",
            "gateValue" : "true",
            "createDate" : ISODate("2019-02-11T02:46:01.000Z")
        }
    ]
},
{
    "_id" : JUUID("80e5ab1b-cc46-48c2-b6f1-ef73db6b07d0"),
    "_class" : "com.mycompany.myservice.model.mymodel",
    "createDate" : ISODate("2018-10-15T18:54:52.000Z"),
    "field1Version" : "6789691",
    "field2Version" : "5980691",
    "field3Version" : "9997662",
    "field4Version" : "d047fb9",
    "type" : "META",
    "features" : [ 
        {
            "featureName" : "FEATURE_1",
            "featureValue" : "true",
            "createDate" : ISODate("2018-10-15T05:59:21.000Z")
        }
    ],
    "gates" : [ 
        {
            "gateName" : "GATE_1",
            "gateValue" : "true",
            "createDate" : ISODate("2018-10-15T05:59:21.000Z")
        }, 
        {
            "gateName" : "GATE_2",
            "gateValue" : "true",
            "createDate" : ISODate("2018-10-18T08:59:21.000Z")
        }, 
        {
            "gateName" : "GATE_3",
            "gateValue" : "true",
            "createDate" : ISODate("2019-02-11T02:46:01.000Z")
        }
    ]
}
...