2016-01-04 2 views
0

У меня есть переменная в моей функции Node.

var storeId; 

Значение storeId может или не может быть undefined.

Теперь, если это undefined, я не хочу, чтобы $match отфильтровывался исходя из этого параметра. Если значение storeId имеет значение, $match следует отфильтровать на основе storeId.

$match: { 
     type: "abc", 
     "_store._id":storeId?: //something like if else here 
    } 

Что я могу добавить здесь?

+1

Я просто иметь if/else в моем javascript для проверки неопределенности 'storeId', тогда я использую запрос без' _store._id', и если 'storeId' имеет некоторое значение, то используйте запрос с' _store._id' – Jay

ответ

1

Я бы решить эту проблему путем создания пустого объекта в соответствии с, а затем заполнить его условно:

var match = {}; 
if (storeId != undefined) match.storeId = storeId; 
if (type != undefined) match.type = type; 
//... 

, а затем использовать этот объект в агрегации трубопровода:

{ $match: match } 
Смежные вопросы