2014-03-03 73 views
0

我正嘗試使用NodeJs創建登錄/註冊系統& Sequelize。當我從用戶處獲取發佈數據時,我想要執行一個FindOrCreate查詢,但其中包含一個OR。具有OR條件的Sequelize FindOrCreate函數

db.User.findOrCreate({ 
     username : desiredUsername, 
     email: emailAddress 
    }) 

這將執行查詢:

SELECT * FROM `users` WHERE `users`.`username`='username' AND `users`.`email`='emailaddress' LIMIT 1; 

我將如何改變和部分OR?如果任何一項陳述是正確的,我需要停止註冊過程。

感謝所有幫助

回答

0

看來你需要把它分解成一個單獨的發現和創造操作:

db.User.find({ 
    where: Sequelize.or({ username: desiredUsername }, { email: emailAddress }) 
}).success(function (user) { 
    if (!user) { 
     db.User.create({ username: desiredUsername, email: emailAddress }); 
    } 
});