У меня есть параметризованный агрегированный запрос mongodb, где параметр получает заданный ObjectID для фильтрации или NULL, если я хочу вернуть все документы. Я имею в виду, я хотел бы использовать один и тот же конвейер для возврата одного ИЛИ всех документов.
Мой конвейерный запрос:
db.user.aggregate([
{'$match': { _id : <MYUSERPARAM> } }
]);
Значение MYUSERPARAM будет иметь данный ObjectId будет фильтроваться или иметь какое-либо значение, если я не хочу фильтровать один документ и хочу вернуть все документы.
Тогда моя система заменит MYUSERPARAM и запустите запрос, например:
Чтобы отфильтровать один документ:
db.user.aggregate([
{'$match': { _id : ObjectId("5e2b9ab8b1dbae5124e4b635") } }
]);
или как-то вернуть все документы:
db.user.aggregate([
{'$match': { _id : $all } }
]);
Но приведенный выше подход не работает .
Как получить конвейерный запрос для фильтрации одного документа ИЛИ вернуть все документы, просто изменив одно значение / параметр в запросе, как в примере выше?