Как пропустить документ, основанный на условии в агрегации mongodb - PullRequest
0 голосов
/ 23 ноября 2018

Допустим, у меня есть схема записи в блоге, которая содержит много ключей, и один из них - автор (ObjectId).Теперь у меня есть другая коллекция пользователей Block, которая содержит два ключа: userid (ObjectId) и userWhoHasBeenBlocked (ObjectId).

Теперь в агрегации я хочу пропустить коллекцию, автор которой равен userWhoHasBeenBlocked.Мой подход: Первый уровень У меня есть запрос на совпадение, который проверяет страну, из которой было сделано сообщение.Допустим, есть ключ страны.

После этого у меня есть запрос $ lookup для коллекции пользователей блоков как

   { $match: { country: "usa" } },
            {
                $lookup:
                {
                    from: "ublocks",
                    let: { whoHasBeenBlocked: "$author", currentUser: userid },
                    pipeline: [
                        {
                            $match:
                            {
                                $expr:
                                {
                                    $and:
                                        [

                                            { $eq: ["$blockedUser", "$$whoHasBeenBlocked"] },

                                        ]
                                }
                            }
                        },
                    ],
                    as: "isBlocked"
                },
            }
},
 { $match: { "$author": { $ne: "$isBlocked.userId" } } }
}

, после этого у меня есть блок $ projection.Это не работает.Как пропустить документ в агрегации.У меня также есть нумерация страниц после этого.

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