У меня есть следующие примеры данных в коллекции под названием inventory
:
{ "_id" : 1, "item" : "abc1", description: "product 1", status: "Low" }
{ "_id" : 2, "item" : "abc2", description: "product 2", status: "Medium" }
{ "_id" : 3, "item" : "xyz1", description: "product 3", status: "High" }
У меня также есть экран, который содержит три фильтра выпадающих списков выбора, которые используются для запроса вышеуказанного инвентаря,т.е.:
Item
Description
Status
Здесь пользователь может выбрать фильтрацию данных по всем трем раскрывающимся спискам, чтобы получить требуемый вывод данных отчета, или может просто выбрать один элемент, чтобы отфильтровать данные отчета.
Мой вопрос: как я могу выполнить требуемый запрос mongodb.find
на основе выбранных значений из раскрывающихся списков, которые могут быть только одним выбором или даже только двумя?
Например, если пользователь выбирает следующеекомбинации и нажимает кнопку отправки, я ожидаю увидеть только этот документ:
Item = "abc2" selected by user
Description = no selection
Status = no selection
Код:
db.inventory.find(
{
"item" : "abc2",
"description" : "",
"status" : ""
}
);
Поскольку я не уверен, какой выбор фильтра будет выполнен, мне нужнообслуживать все типы комбинаций.
Выбор только item
возвращает мне 0 документов, так как он ожидает значения как для description
, так и status
, но на самом деле он должен возвращать мне oНе документ.