亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node.js Sequelize實現(xiàn)單實例字段或批量自增、自減

 更新時間:2016年12月08日 11:48:54   投稿:daisy  
Sequelize 可以實現(xiàn)針對單個實例的一或多個字段的自增、自減操作,也可以對符合條件的數(shù)據(jù)進(jìn)行批量的自增、自減操作。單個實例字段的自增、自減可以利用Instance的相應(yīng)方法實現(xiàn),而批量自增、自減則需要借助sequelize提供的字面量方法實現(xiàn)。下面來看看詳細(xì)的介紹吧。

一、單實例自增、自減

在Sequelize中,一個實例(Instance)表示數(shù)據(jù)庫中的一行記錄。Instance有兩種:由Model.build()創(chuàng)建的非持久化實例,和由Model.create()等方法創(chuàng)建的持久化實例。無論是持久化還是非持久化實例,都會有increment()decrement()兩人上方法,分別用于字段值的自增和自減兩種操作。

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

如,查找id為1的用戶,并將其年齡自增1:

var User = sequelize.import('../lib/model/user/user');
User.findById(1).then(function(user){
 user.increment('age').then(function(user){
 console.log('success');
 })
})

其中increment()方法生成的SQL語句如下:

UPDATE `user` SET `age`=`age` + 1 WHERE `id` = 1

increment()decrement()默認(rèn)的自增、自減值是1。如果希望使用其它值,可在選項參數(shù)[options]中通過by參數(shù)指定。

如,將用戶的number、age兩個字段減小2,可以通過以下方式實現(xiàn):

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ù)還可以通過對象傳入,并指定自增、自減值。這種情況下,會忽略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

二、 批量自增、自減

increment()decrement()都是針對單個實例進(jìn)行自增或自減操作的,也就是說操作的數(shù)據(jù)為數(shù)據(jù)庫中的一行數(shù)據(jù)。要實現(xiàn)類似如下批量自增、自減操作,就無法通過Instance操作:

UPDATE `user` SET `age`=`age` + 1 WHERE `number` > 10;

在Sequelize中,指量操作一般是通過模型(Model)來實現(xiàn)。但Model并沒有increment()decrement()方法,無法像Instance那樣方便的進(jìn)行自增或自減。

這時,我們可以通過Model.update()并借助sequelize中的頂級方法sequelize.literal()來實現(xiàn):

sequelize.literal(val) - 創(chuàng)建字面量對象

sequelize.literal()方法用于創(chuàng)建一個字面量對象,該對象(val)會被直接傳入所生成的SQL語句中,而不會進(jìn)行任何轉(zhuǎn)義。

如,將number大于10的用戶年齡增加1:

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

總結(jié)

以上就是這篇文章的全部內(nèi)容了,希望本文的內(nèi)容對大家的學(xué)習(xí)或者工作能帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • Node.js系列之安裝配置與基本使用(1)

    Node.js系列之安裝配置與基本使用(1)

    這篇文章主要為大家詳細(xì)介紹了Node.js系列之安裝配置與基本使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • NodeJs操作MongoDB教程之分頁功能以及常見問題

    NodeJs操作MongoDB教程之分頁功能以及常見問題

    這篇文章主要給大家介紹了關(guān)于NodeJs操作MongoDB教程之分頁功能以及常見問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用NodeJs具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • node 版本切換的實現(xiàn)

    node 版本切換的實現(xiàn)

    這篇文章主要介紹了node 版本切換的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-02-02
  • node.js基礎(chǔ)知識小結(jié)

    node.js基礎(chǔ)知識小結(jié)

    本文給大家匯總介紹了學(xué)習(xí)node.js的一些關(guān)于開發(fā)環(huán)境的基礎(chǔ)知識,非常簡單,給新手們參考下
    2018-02-02
  • node.js爬取中關(guān)村的在線電瓶車信息

    node.js爬取中關(guān)村的在線電瓶車信息

    這篇文章主要給大家介紹了關(guān)于利用node.js如何爬取中關(guān)村的在線電瓶車信息的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用node.js具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11
  • Node綁定全局TraceID的實現(xiàn)方法

    Node綁定全局TraceID的實現(xiàn)方法

    這篇文章主要介紹了Node 綁定全局 TraceID的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • node事件循環(huán)中事件執(zhí)行的順序

    node事件循環(huán)中事件執(zhí)行的順序

    在瀏覽器環(huán)境下我們的js有一套自己的事件循環(huán),同樣在node環(huán)境下也有一套類似的事件循環(huán)。本文就詳細(xì)的來介紹一下,感興趣的可以了解一下
    2021-08-08
  • Node.js完整實現(xiàn)博客系統(tǒng)詳解

    Node.js完整實現(xiàn)博客系統(tǒng)詳解

    這篇文章主要介紹了Node.js完整實現(xiàn)一個博客系統(tǒng)的流程,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • 淺談Node.js 中間件模式

    淺談Node.js 中間件模式

    中間件在 Node.js 中被廣泛使用,它泛指一種特定的設(shè)計模式、一系列的處理單元、過濾器和處理程序,以函數(shù)的形式存在,這篇文章主要介紹了淺談Node.js 中間件模式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • nodejs服務(wù)內(nèi)存泄露排查過程和優(yōu)化方法

    nodejs服務(wù)內(nèi)存泄露排查過程和優(yōu)化方法

    在開發(fā)和部署Node.js應(yīng)用程序時,內(nèi)存泄露是一個常見的挑戰(zhàn),本文將探討如何對于一個陌生項目進(jìn)行內(nèi)存排查和優(yōu)化的方法,文章通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11

最新評論