všetci dúfajú, že všetci sú v poriadku. Som nový na node.js a mongodb a mám problémy s prenosom premenných na modelový dotaz.
Keď odovzdám dva argumenty, jeho výsledok je prázdny a záznam však existuje.
Načítanie údajov z obrázka MongoDB
Odoslanie žiadosti prostredníctvom pošty
GET Route: / data /: vehicle_no /: drive_id
URL: http://localhost/api/data/ZXC-1123/drive_234
Kód 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");
}
})
výsledok: ID disku nebolo nájdené
Očakávaný výsledok však musí byť: Nájdený identifikátor disku
Vo vyššie uvedenom kóde: Trip_Details je pole objektov s názvom_súboru, _id, TripData.
A ak odovzdám iba jeden argument, ako je vehicle.find ({ID: reg_no} potom sa našiel výsledok.
Láskavo pomôžte, Vopred ďakujem
odpovede:
-1 pre odpoveď č. 1Na dopyt založený na dvoch parametroch môžete použiť aj $ a lepšiu čitateľnosť. Miesto, kde ste sa pokazili, je písomný dotaz, druhý parameter by mal byť napísaný ako:
vehicle.find({
ID: reg_no,
Trip_Details.FileName: drive_id
}
Vaša implementácia pomocou $ a bude nasledovná:
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");
}
})
Viac informácií nájdete Mongoose Docs