Sequelize(3) CRUD

先談增改刪

模型定義

var Task = sequelize.define( 'task', {
    title: Sequelize.STRING,
    rank: { type: Sequelize.STRING, defaultValue: 3 }
} );

Create

// 創(chuàng)建數(shù)據(jù)庫(kù)中對(duì)象
Task.create( { title: 'foo' } );

// 創(chuàng)建臨時(shí)變量
var task = Task.build( { title: 'very important task' } );

// 將臨時(shí)變量存入數(shù)據(jù)庫(kù)內(nèi), 只保存 title 屬性
task.save( { fields: [ 'title' ] } );

Update

// 在數(shù)據(jù)庫(kù)中更新 task 的 title
task.update( { title: 'a very different title now' } );


// 更新 排名小于1000或者無(wú)排名的 post 的 updateAt 為 null
Post.update( {
    updatedAt: null,
}, {
    where: {
        rank: {
            $or: {
                $lt: 100,
                $eq: null
            }
        }
    }
    //// rank < 1000 OR rank IS NULL
} );

Delete

// 刪除 不活躍的 post
Post.destroy( {
    where: {
        status: 'inactive'
    }
} );

Retrieve

// 只選擇相應(yīng)屬性
Model.findAll( {
    attributes: [ 'foo', 'bar' ]
} );
// 做聚類(lèi)
Model.findAll( {
    attributes: { include: [ [ sequelize.fn( 'COUNT', sequelize.col( 'hats' ) ), 'no_hats' ] ] }
} );
// 除開(kāi)某些屬性
Model.findAll( {
    attributes: { exclude: [ 'baz' ] }
} );

// id 查找
Project.findById( 123 ).then();

// 屬性查找
Project.findOne( { where: { title: 'aProject' } } ).then();
// ?
Project.findOne( { where: { title: 'aProject' }, attributes: [ 'id', [ 'name', 'title' ] ] } ).then();

// 找借宵,無(wú)則創(chuàng)建刑然, created 為 boolean
User.findOrCreate( { where: { username: 'kayor' } } ).spread( function ( user, created ) {} );

// 找并且計(jì)數(shù) count 為計(jì)數(shù), rows 為對(duì)象數(shù)組
Project.findAndCountAll( {
    where: { title: { $like: 'foo%' } },
    offset: 10,
    limit: 2
} ).then( function ( result ) {
    console.log( result.count );
    console.log( result.rows );
} );

// 找出擁有 active profile 的用戶(hù)
User.findAndCountAll( {
    include: [
        { model: Profile, where: { active: true } }
  ],
    limit: 3
} );


Project.findAll();
Project.all();
Project.findAll( { where: { name: "a Project" } } );
Project.findAll( { where: [ "id>?", 25 ] } );
Project.findAll( { where: { id: [ 1, 2, 3 ] } } );
Project.findAll( {
    where: {
        id: {
            $and: { a: 5 },
            $or: [ { a: 5 }, { a: 6 } ],
            $gt: 6,
            $gte: 6,
            $lt: 10,
            $lte: 10,
            $ne: 20,
            $between: [ 6, 10 ],
            $notBetween: [ 6, 10 ],
            $in: [ 1, 2 ],
            $notIn: [ 1, 2 ],
            $like: '%hat'
        },
        status: { $not: false }
    }
} );

//只找十個(gè)
Project.findAll( { limit: 10 } );
// 跳過(guò)前10個(gè)
Project.findAll( { offset: 10 } );
// 跳過(guò)前10暇务,取兩個(gè)
Project.findAll( { offset: 10, limit: 2 } );

// 遞減
Project.findAll( { order: 'title DESC' } );
// 分組
Project.findAll( { group: 'name' } );
// 計(jì)數(shù)
Project.count( { where: [ "id>?", 25 ] } );
// 找最大
Project.max( 'age' );

// 內(nèi)連接找到擁有符合條件工具的用戶(hù)
Post.findAll( {
    include: [ {
        model: Comment,
        as: 'comment_my',
        where: { name: { $like: '%ooth%' } }
    } ]
} );

// 獲得原數(shù)據(jù)
Post.findOne( { where: { title: 'scut' } } ).then( function ( post ) {
    post.title = 'south china university of tecknology';
    console.log( post.title ); // 'south china university of tecknology'

    post.reload().then( function () {
        console.log( post.title ); // 'scut'
    } );
} );

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末泼掠,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子垦细,更是在濱河造成了極大的恐慌择镇,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,692評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件括改,死亡現(xiàn)場(chǎng)離奇詭異腻豌,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)嘱能,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,482評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門(mén)吝梅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人惹骂,你說(shuō)我怎么就攤上這事苏携。” “怎么了对粪?”我有些...
    開(kāi)封第一講書(shū)人閱讀 162,995評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵右冻,是天一觀(guān)的道長(zhǎng)装蓬。 經(jīng)常有香客問(wèn)我,道長(zhǎng)纱扭,這世上最難降的妖魔是什么牍帚? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,223評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮乳蛾,結(jié)果婚禮上代咸,老公的妹妹穿的比我還像新娘耳贬。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,245評(píng)論 6 388
  • 文/花漫 我一把揭開(kāi)白布够话。 她就那樣靜靜地躺著翁狐,像睡著了一般楼雹。 火紅的嫁衣襯著肌膚如雪脐雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 51,208評(píng)論 1 299
  • 那天筛欢,我揣著相機(jī)與錄音浸锨,去河邊找鬼。 笑死版姑,一個(gè)胖子當(dāng)著我的面吹牛柱搜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播剥险,決...
    沈念sama閱讀 40,091評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼聪蘸,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了表制?” 一聲冷哼從身側(cè)響起健爬,我...
    開(kāi)封第一講書(shū)人閱讀 38,929評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎么介,沒(méi)想到半個(gè)月后娜遵,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,346評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡壤短,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,570評(píng)論 2 333
  • 正文 我和宋清朗相戀三年设拟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片久脯。...
    茶點(diǎn)故事閱讀 39,739評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡纳胧,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出帘撰,到底是詐尸還是另有隱情跑慕,我是刑警寧澤,帶...
    沈念sama閱讀 35,437評(píng)論 5 344
  • 正文 年R本政府宣布骡和,位于F島的核電站相赁,受9級(jí)特大地震影響相寇,放射性物質(zhì)發(fā)生泄漏慰于。R本人自食惡果不足惜钮科,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,037評(píng)論 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望婆赠。 院中可真熱鬧绵脯,春花似錦、人聲如沸休里。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,677評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)妙黍。三九已至悴侵,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拭嫁,已是汗流浹背可免。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,833評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留做粤,地道東北人浇借。 一個(gè)月前我還...
    沈念sama閱讀 47,760評(píng)論 2 369
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像怕品,于是被迫代替她去往敵國(guó)和親妇垢。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,647評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容