Определить дубликаты в массиве объектов (встроенный документ) и вернуть первичный ключ (_ids) из коллекции - PullRequest
0 голосов
/ 08 февраля 2019

Я хочу идентифицировать дубликаты, присутствующие в массиве объектов (встроенный документ), и хочу вернуть дубликаты (критерии должны быть startDate атрибут), а также первичный ключ этого документа из коллекции.

Структура документа Mongodb:

{
    "_id" : "123",
    "timeZone" : "Australia/Queensland",
    "schedule" : [ 
        {
            "startDate" : ISODate("2018-07-09T16:00:00.000Z"),
            "endDate" : ISODate("2018-07-09T16:30:00.000Z"),
            "day" : "MONDAY",
            "status" : "AVAILABLE"
        }, 
        {
            "startDate" : ISODate("2018-07-09T16:30:00.000Z"),
            "endDate" : ISODate("2018-07-09T17:00:00.000Z"),
            "day" : "MONDAY",
            "status" : "AVAILABLE"
        }, 
        {
            "startDate" : ISODate("2018-07-09T16:30:00.000Z"),
            "endDate" : ISODate("2018-07-09T17:00:00.000Z"),
            "day" : "MONDAY",
            "status" : "AVAILABLE"
        }
    ]
}   

Я ищу код агрегации Spring mongodb, который должен вернуть список _ids и дубликат schedule elements.Как то так:

[
{
    "_id" : "123",
    "schedule" : [ 
        {
            "startDate" : ISODate("2018-07-09T16:30:00.000Z"),
            "endDate" : ISODate("2018-07-09T17:00:00.000Z"),
            "day" : "MONDAY",
            "status" : "AVAILABLE"
        }, 
        {
            "startDate" : ISODate("2018-07-09T16:30:00.000Z"),
            "endDate" : ISODate("2018-07-09T17:00:00.000Z"),
            "day" : "MONDAY",
            "status" : "AVAILABLE"
        }
    ]
},

{

    Another document containing _ids and duplicates

}  

] 
...