Sam*_*Sam 5 javascript mongoose mean-stack
我正在为需要存储一些首选项的应用程序编写后端。
我正在使用 MEAN 堆栈,因此后端是 express + mongodb。为此,我正在使用猫鼬。
数据库必须具有唯一的首选项文档,该文档在服务器启动时存在并且只能更新。该文档也不应该被覆盖(如果我在数据库中已经创建了文档的情况下重新启动服务器:不要删除/修改它)。但我不知道如何只保存一次唯一的(默认)文档。它永远不会进入 pre.("save") 回调。
我已经这样做了:
var mongoose = require('mongoose'), Schema = mongoose.Schema;
var preferencesSchema = new Schema({
/* preference schema */
});
var Preferences = mongoose.model('Preferences', preferencesSchema);
var default_prefs = new Preferences({
/* default entry */
});
preferencesSchema.pre('save', function(next) {
var self = this;
/** NEVER GETS HERE **/
Preferences.find({}, function(err, pref_documents) {
if (pref_documents.length > 0) {
console.log("Skiping save because a preference already exists !");
next();
} else {
console.log("Not skiping !!");
next();
}
});
});
default_prefs.save(function(err, preferences) {
if (err)
console.log('error saving !!');
else
console.log("Saved Preferences: " + preferences);
});
Run Code Online (Sandbox Code Playgroud)