3
コードは、文書がDBに存在するかどうか(プリセーブフックを使用)をチェックし、存在しない場合は挿入します。それは正常に動作しますが、最初のドキュメントでは機能しません。常に挿入されます。この最初のドキュメントは、事前セーブフックを起動しないようです。mongoose常に最初の文書を挿入して、事前保存フックをスキップする
Model = require('./model')
var model = new Model();
//Before saving, check if the product exists
Model.schema.pre('save', function (next) {
var self = this;
Model.findOne({apiProductId: self.apiProductId}, function (err, product) {
if (!product) {
next();
}
else {
next(new Error("Product exists: " + self.apiProductId));
}
});
});
model.save(function (err, document) {
if (err) {
console.log(err);
}
else {
console.log('Inserted: ' + document.apiProductId);
}
});
mongoの** _ upsert _ **機能は役に立ちますか?たぶんこの[stackoverflowスレッド](http://stackoverflow.com/questions/9661081/mongoose-update-upsert)いくつかを明確にすることができます。 – FlorianE