Jestem nowy w nodejs.Mam już db o nazwie aqi z nazwą kolekcji pln. Próbuję wyświetlić wszystkie rekordy w kolekcji na stronie internetowej, ale mangusta zawsze zwraca pustą tablicę. przetestowałem to z innymi dbs, ale mogę uzyskać od nich dane, ale dla pln mangusty zawsze zwracaj pustą tablicę. byłbym bardzo wdzięczny, gdyby ktoś mógł mi pomóc. to jest mój schemat
var Pln = new Schema({
latit : Number,
longit : Number,
timestmp : String,
co : Number,
smoke : Number,
O3 : Number,
humidity : Number,
temperature: Number,
co2 : Number,
dust : String
});
var plnModel = mongoose.model("pln", Pln);
To moja trasa.
app.get("/", function(req, res) {
res.contentType("application/json");
plnModel.find({}, function(err, pln) {
if (pln != null) {
console.log("Found the User:" + pln.latit);
res.send(JSON.stringify(pln));
}
});
});
Odpowiedzi:
1 dla odpowiedzi № 1Jeśli zdefiniujesz swój model w ten sposób: mongoose.model("pln", Pln)
, a następnie twoją kolekcję musi być nazwanym "plns"
(= nazwa twojego modelu + s)
Jeśli tak nie jest, musisz powiedzieć Mongoose, że masz niestandardową nazwę kolekcji (w twoim przypadku na podstawie komentarzy, "pln"
bez s) przy użyciu:
mongoose.model("pln", Pln, "pln")
, trzeci argument to rzeczywista nazwa Twojej kolekcji.
I spójrz na ten kod:
app.get("/", function(req, res) {
plnModel.find({}, function(err, pln) {
if(err) return res.status(500).json(err);
console.log("Found Users :", pln);
res.status(200).json(pln);
});
});