-1
Ich habe folgendes Setup.findOne mit Mongoose/MongoDB gibt keine Zeile zurück
Das me = ist eingehende Daten von der Anfrage, aber da es in diesem Beispiel nicht verwendet wird, überspringe ich die Info.
Hinzugefügt das findAndUpdate, das ich versuche zu tun. Warum wird statt findAndUpdate statt einer Aktualisierung ein Insert eingefügt?
app.js
mongoose.connect("mongodb://localhost/time_report");
var reportSchema = new mongoose.Schema({
name: String,
month: String,
date: String,
hours: Number,
dayNumber: Number,
day: String
});
var time = mongoose.model("time", reportSchema);
Abfrage:
app.get("/test", function(req, res) {
var me = new time({
name: info[i + 3],
month: info[i + 1],
date: info[i + 2],
hours: info[i],
dayNumber: info[i + 4],
day: info[i + 5]
});
time.findOneAndUpdate(query, update, options, function(err, data) {
if (err) {
console.log(err);
}
console.log("data: " + data);
found = true;
});
}
..... Mehr Sachen und Hörer
In MongoDB:
{ "_id" : ObjectId("598d71b20f47692f48eb7393"), "name" : "jocke", "month" : "2017-08", "date" : "2017-08-01", "hours" : 8, "dayNumber" : 2, "day" : "Tuesday", "__v" : 0 }
Mongoose debug:
[0;36mMongoose: times.findAndModify({ date: '2017-08-31' }, [], { '$set': { hours: null } }, { new: false, upsert: false, fields: {} })
[0;36mMongoose: times.insert({ name: '', month: '2017-08', date: '2017-08-31', hours: null, dayNumber: 4, day: 'Thursday', _id: ObjectId("598d7ef69386343b3035192f"), __v: 0 })
* "Die console.log wird nie in diesem Szenario ausführen." *, Was bedeutet, das ', wenn (err) 'kehrt wahr zurück. Also, was ist der Fehler? –
Warum erstellen Sie Instanz mit neuen für das Finden des Elements –
Es gibt keinen Fehler, es wird einfach überspringen, da es Nog einen Treffer ist. Die neue Instanz ist für die Zeit, wenn Sie nichts finden. Dann wird es als neues Objekt gespeichert. – user2130951