-1
私は以下の設定をしています。findOne with Mongoose/MongoDBが行を返さない
me =はリクエストからの受信データですが、この例では使用されていないため、情報をスキップしています。
私がしようとしているfindAndUpdateを追加しました。更新の代わりにfindAndUpdateに挿入が行われるのはなぜですか?
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);
クエリ:
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;
});
}
..... MongoDBのより多くのものとリスナー
:
{ "_id" : ObjectId("598d71b20f47692f48eb7393"), "name" : "jocke", "month" : "2017-08", "date" : "2017-08-01", "hours" : 8, "dayNumber" : 2, "day" : "Tuesday", "__v" : 0 }
マングースデバッグ:
[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 })
* '場合意味*「このシナリオで実行することはありませんにconsole.log。」 (err) 'が真を返す。だからエラーは何ですか? –
なぜ要素を見つけるためにnewを使用してインスタンスを作成していますか –
nogがヒットして以来、ただスキップするエラーはありません。新しいインスタンスは、あなたが何かを見つけられない時のためのものです。その後、新しいオブジェクトとして保存されます – user2130951