Монго, удалить родительский элемент массива из дочернего - PullRequest
0 голосов
/ 19 сентября 2018

Используя структуру агрегации, я хотел бы отфильтровать некоторые элементы внутри массива на основе некоторого условия, связанного с дочерними элементами данного массива

Здесь приведен пример документов

/* 1 */
{
    "_id" : 1,
    "articles" : [ 
        {
            "suppliers" : [ 
                {
                    "exports" : [ 
                        {
                            "channelId" : 'A'
                        }
                    ]
                }
            ]
        }, 
        {
            "suppliers" : [ 
                {
                    "exports" : []
                }
            ]
        }
    ]
}

/* 2 */
{
    "_id" : 2,
    "articles" : [ 
        {
            "suppliers" : [ 
                {
                    "exports" : [ 
                        {
                            "channelId" : 'A'
                        }
                    ]
                }
            ]
        }
    ]
}

/* 3 */
{
    "_id" : 3,
    "articles" : [ 
        {
            "suppliers" : [ 
                {
                    "exports" : [
                        {
                            "channelId" : 'B'
                        }
                    ]
                }
            ]
        }
    ]
}

Давайтескажем, я хочу отфильтровать все элементы в массиве статей, если 'article.suppliers.exports.channelId' = 'A'.

Вот пример результата

/* 1 */
{
    "_id" : 1,
    "articles" : [   
        {
            "suppliers" : [ 
                {
                    "exports" : []
                }
            ]
        }
    ]
}

/* 2 */
{
    "_id" : 2,
    "articles" : []
}

/* 3 */
{
    "_id" : 3,
    "articles" : [ 
        {
            "suppliers" : [ 
                {
                    "exports" : [
                        {
                            "channelId" : 'B'
                        }
                    ]
                }
            ]
        }
    ]
}

EDIT

Отличие от в том, что вопрос состоит в том, что здесь мы хотим удалить все дочерние элементы первого массива, если условие проверено внутри последнего массива, в старом вопросе, который мы хотели удалитьпросто элемент в последнем массиве

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...