У меня есть запрос, который, как я думал, даст результаты, когда любые номерные знаки соответствуют любому из объектов поиска, но если я ищу точное совпадение, которое, как мне известно, находится в базе данных, оно не возвращается, однако частичные совпадения все еще возвращаются.
В следующем фрагменте кода я думал, что первый объект будет соответствовать при точном совпадении текста, поскольку он охватывает все свойства, которые документ может иметь для категории.
$or: [
{
"p1": req.query.p1,
"p2": req.query.p2,
"numbers": req.query.numbers,
"l1": req.query.l1,
"l2": req.query.l2,
"l3": req.query.l3,
"category": "current_plates"
},
{
"numbers": req.query.numbers,
"l1": req.query.l1,
"l2": req.query.l2,
"l3": req.query.l3,
"category": "current_plates"
},
{
"p1": req.query.p1,
"p2": req.query.p2,
"numbers": req.query.numbers,
"category": "current_plates"
},
{
"l1": req.query.l1,
"l2": req.query.l2,
"l3": req.query.l3,
"category": "current_plates"
}
]
ПримерДокумент:
{
"_id": "5dc5d7ee0eef0f4ea047b0e6",
"p1": "A",
"p2": "K",
"numbers": "20",
"l1": "N",
"l2": "A",
"l3": "T",
"price": 699,
"plate": "AK20NAT",
"category": "current_plates"
}
Строка поиска: AD67NAT
, она разбита на части:
p1 = A
p2 = D
numbers = 67
l1 = N
l2 = A
l3 = T
Текущая пластина состоит из "p1, p2, numbers, l1, l2, l3", категории и идентификатора монго, так что похоже на точное совпадение, скажем, AD67NAT
должно быть возвращено, но это не так иЯ не могу понять, почему.