[英]Check if document already exists and if yes then update, otherwise create new - Mongoose
[英]Check if document already exists if not create one
我正在學習expressjs + mongo。 我想在用戶使用護照通過Steam登錄后檢查,如果他的數據已經在數據庫中,如果不是為他創建記錄。
為此我在schema中創建了一個靜態方法。 不幸的是,我無法從內部拯救。
TypeError:Object#沒有方法'create'
SteamAccountSchema.statics.checkAccount = function(identifier){
this.findOne({ 'identifier' : identifier }, function(err, account){
if(err) throw err;
console.log("Checking account:" + account)
if(account) {
console.log("user already in db")
return true
} else {
console.log("Creating new user account")
this.create({
name : 'username',
identifier: identifier
}, function(err){
if(err) throw err;
// if (err) return done(err);
return false
});
}
});
}
只需緩存此對象即可。 即在下面的代碼中, self指向您需要的內容:
SteamAccountSchema.statics.checkAccount = function(identifier){
var self = this;
this.findOne({ 'identifier' : identifier }, function(err, account){
if(err) throw err;
console.log("Checking account:" + account)
if(account) {
console.log("user already in db")
return true
} else {
console.log("Creating new user account")
self.create({
name : 'username',
identifier: identifier
}, function(err){
if(err) throw err;
// if (err) return done(err);
return false
});
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.