/ / Mongoose nájsť dopyt prechádzajúce premenné [duplicate] - node.js, mongodb, mongoose, mongoose-scheme

Mongoose nájsť dopyt prechádzajúce premenné [duplicate] - node.js, mongodb, mongoose, mongoose-schema

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ď č. 1

Na 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