sequlize增刪改查操作

增筏勒、刪茅逮、改憔购、查

  • create 創(chuàng)建
  • destroy 刪除
  • update 更新
    • fields 指定更新的字段
  • findOne findByPk findAll findAndCountAll 查找
//增加焦匈、創(chuàng)建
Role.create({name:'test'}).then(res=>{})

//刪除
Role.destroy({where: { id:1}}).then(res=>{}) 

//改  data為修改內(nèi)容鍵值對(duì) 對(duì)象
Role.update(data, {where: { id }, fields: ['name', 'limits'] }).then(res=>{}) ;

//查
Role.findOne({where: { id:1}}).then(res=>{}) 
//通過(guò)id查找
Role.findByPk(id).then(res=>{})   //findById 已被棄用

//查找所有
Role.findAll().then(res=>{})
Role.all().then(res=>{})

批量插入

bulkCreate

USer.bulkCreate([
  {name:'',nickname:''},
  {name:'',nickname:''},
])

排除一些指定的表字段

attributes: { exclude: ['password'] } 值指定字段數(shù)組

//查
User.findOne({
    where: { id:1},
    attributes: { exclude: ['password'] }
}).then(res=>{}) 
//通過(guò)id查找
User.findByPk(id,{ attributes: { exclude: ['password'] }}).then(res=>{})  

返回指定字段

attributes 值指定字段數(shù)組

User.findOne({
    where: { id:1},
    attributes: ['username'] 
}).then(res=>{}) 
//findAll()  all()  用法同上
//通過(guò)id查找
User.findByPk(id,{ attributes:['username','age'] }).then(res=>{})  

重命名

屬性可以使用嵌套數(shù)組來(lái)重命名

Model.findAll({
  attributes: ['foo', ['bar', 'baz']]
});
//SELECT foo, bar AS baz ...

字段自增 自減

1.單實(shí)例自增赘淮、自減

instance.increment(fields, [options]) 字段值自增
instance.decrement(fields, [options]) 字段值自減

User.findById(1).then(function(user){
 user.increment('age').then(function(user){
   console.log('success');
 })
})
//生成如下sql
UPDATE `user` SET `age`=`age` + 1 WHERE `id` = 1

//多個(gè)字段設(shè)置
user.increment(['age', 'number'], {by:2}).then(function(user){
 console.log('success');
})
//生成如下sql
UPDATE `user` SET `age`=`age` + 2,`number`=`number` + 2 WHERE `id` = 1

//fields參數(shù)還可以通過(guò)對(duì)象傳入辕录,并指定自增、自減值梢卸。這種情況下走诞,會(huì)忽略options.by參數(shù)。
//如低剔,將用戶的number增加2速梗、age減小1:
user.increment({age:-1, number:2}, {by:5}).then(function(user){
 console.log('success');
})
//生成如下sql
UPDATE `user` SET `age`=`age` + -1,`number`=`number` + 2 WHERE `id` = 1

2.批量自增肮塞、自減
User.update({sex:sequelize.literal('`age` +1')}, {where:{number:{$gt:10}}}).then(function(user){
 console.log('success');
})
//生成如下sql
UPDATE `user` SET `age`=`age` +1 WHERE `number` > 10

復(fù)雜查詢

const Op = Sequelize.Op;
user.findAll({
  where: {
    authorId: 12,
    status: 'active'
  }
});
// SELECT * FROM user WHERE authorId = 12 AND status = 'active';

user.findAll({
  where: {
    [Op.or]: [{authorId: 12}, {authorId: 13}]
  }
});
// SELECT * FROM user WHERE authorId = 12 OR authorId = 13;

user.findAll({
  where: {
    authorId: {
      [Op.or]: [12, 13]
    }
  }
});
// SELECT * FROM user WHERE authorId = 12 OR authorId = 13;

排序

order

user.findAll({
  where: {
    authorId: {
      [Op.or]: [12, 13]
    }
  },
  order: [
     ['createdAt', 'DESC'],
     ['id', 'DESC'],
   ],
});

分頁(yè)查詢 模糊查詢

findAndCountAll 能返回總頁(yè)數(shù)和當(dāng)前頁(yè) 數(shù)據(jù)
limit 限制條數(shù)
offset 偏移量

let {username,roles_id,page=1,pageSize=10}=ctx.request.query;
//注意分頁(yè)要轉(zhuǎn)化為number類(lèi)型
page=Number(page);
pageSize=Number(pageSize);
let wheres=null;
if(username||roles_id){
    wheres={
        username: {
            // 模糊查詢
            [Op.like]:'%' +username + '%',
        },
        roles_id:{
            [Op.like]:`%${roles_id?roles_id:''}%`
        }
    }
}
//不需要分頁(yè)的時(shí)候直接用findAll 、all
//findAndCountAll  能返回總數(shù)
user.findAndCountAll({
    where:wheres,
    limit: pageSize,
    offset: pageSize * (page - 1)
}).then(res=>{
//返回查到內(nèi)容
})           

轉(zhuǎn)載自作者:zlb123456

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末姻锁,一起剝皮案震驚了整個(gè)濱河市枕赵,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌位隶,老刑警劉巖拷窜,帶你破解...
    沈念sama閱讀 217,542評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異涧黄,居然都是意外死亡篮昧,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門(mén)笋妥,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)懊昨,“玉大人,你說(shuō)我怎么就攤上這事春宣〗桶洌” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,912評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵月帝,是天一觀的道長(zhǎng)躏惋。 經(jīng)常有香客問(wèn)我,道長(zhǎng)嚷辅,這世上最難降的妖魔是什么簿姨? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,449評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮簸搞,結(jié)果婚禮上扁位,老公的妹妹穿的比我還像新娘。我一直安慰自己攘乒,他們只是感情好贤牛,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,500評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著则酝,像睡著了一般殉簸。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上沽讹,一...
    開(kāi)封第一講書(shū)人閱讀 51,370評(píng)論 1 302
  • 那天般卑,我揣著相機(jī)與錄音,去河邊找鬼爽雄。 笑死蝠检,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的挚瘟。 我是一名探鬼主播叹谁,決...
    沈念sama閱讀 40,193評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼饲梭,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了焰檩?” 一聲冷哼從身側(cè)響起憔涉,我...
    開(kāi)封第一講書(shū)人閱讀 39,074評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎析苫,沒(méi)想到半個(gè)月后兜叨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡衩侥,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,722評(píng)論 3 335
  • 正文 我和宋清朗相戀三年国旷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片茫死。...
    茶點(diǎn)故事閱讀 39,841評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡跪但,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出峦萎,到底是詐尸還是另有隱情特漩,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評(píng)論 5 345
  • 正文 年R本政府宣布骨杂,位于F島的核電站,受9級(jí)特大地震影響雄卷,放射性物質(zhì)發(fā)生泄漏搓蚪。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,168評(píng)論 3 328
  • 文/蒙蒙 一丁鹉、第九天 我趴在偏房一處隱蔽的房頂上張望妒潭。 院中可真熱鬧,春花似錦揣钦、人聲如沸雳灾。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,783評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)谎亩。三九已至,卻和暖如春宇姚,著一層夾襖步出監(jiān)牢的瞬間匈庭,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,918評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工浑劳, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阱持,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,962評(píng)論 2 370
  • 正文 我出身青樓魔熏,卻偏偏與公主長(zhǎng)得像衷咽,于是被迫代替她去往敵國(guó)和親鸽扁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,781評(píng)論 2 354