/ / Mongoose znajdź kwerendę przekazującą zapytania [duplicate] - node.js, mongodb, mangusta, mangusta-schemat

Mongoose find query passing variables [duplicate] - node.js, mongodb, mangusta, mangusta-schemat

wszyscy mają nadzieję, że wszyscy są w porządku. Jestem nowy w węźle node.js i mongodb i mam problemy z przekazywaniem zmiennych do zapytania modelu mongoose.

Kiedy przekazuję dwa argumenty, jego wynik jest pusty, a jednak rekord istnieje.

Pobieranie danych z obrazu MongoDB

Wysyłanie Uzyskaj żądanie za pośrednictwem Postmana

POBIERZ trasę: / data /: vehicle_no /: drive_id

URL: http://localhost/api/data/ZXC-1123/drive_234

Kod trasy:

var reg_no = req.params.vehicle_no;
drive_id: req.params.drive_id;
vehicle.find({
ID: reg_no,
Trip_Details: {
FileName: drive_id
}
}, function(err, result) {
if(err) {
res.json(err);
} else if(result.length > 0) {
res.json("Drive id Found");
} else {
res.json("Drive id not Found");
}
})

Wynik: Nie znaleziono identyfikatora dysku

Oczekiwany wynik musi być: Znaleziono identyfikator jazdy

W powyższym kodzie: Trip_Details jest tablicą obiektów posiadającą file_name, _id, TripData.

I jeśli przekażę tylko jeden argument vehicle.find ({ID: reg_no} następnie znaleziono wynik.

Uprzejma pomoc, Z góry dziękuję

Odpowiedzi:

-1 dla odpowiedzi nr 1

Aby zapytać na podstawie dwóch parametrów, możesz również użyć $ i dla lepszej czytelności. Miejsce, w którym popełniono błąd, to zapytanie pisane, drugi parametr powinien być zapisany jako:

vehicle.find({
ID: reg_no,
Trip_Details.FileName: drive_id
}

Twoja implementacja za pomocą $ i będzie następująca: -

vehicle.find({
$and: [
{ID: reg_no},
{Trip_Details.FileName: drive_id
}]
}, function(err, result) {
if(err) {
res.json(err);
} else if(result.length > 0) {
res.json("Drive id Found");
} else {
res.json("Drive id not Found");
}
})

Aby uzyskać więcej informacji, zapoznaj się Dokumenty Mongoose