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 1Aby 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