中文字幕精品亚洲无线码二区,国产黄a三级三级三级看三级,亚洲七七久久桃花影院,丰满少妇被猛烈进入,国产小视频在线观看网站

Node.js與Sails~中間查詢語言Waterline

回到目錄

上講主要說了如何配置sails的持久化機制,這講(jiang)主要說一下實現持久化時的增刪改查的語(yu)法(fa),在sails里使(shi)用(yong)了和(he)mongodb風格類似(si)的waterline查詢語(yu)言,使(shi)用(yong)簡單(dan),語(yu)法(fa)生動,下面我們主要介紹一下find,findOne,Update,Create,Destory等。

find,查(cha)詢并返回結(jie)果集

Model.find({ name: 'foo' })

上(shang)面查(cha)詢name等于foo的集合,如(ru)果希望(wang)返回分頁結果,可以(yi)使(shi)用(yong)limit和skip參數,如(ru)下

Model.find({ where: { name: 'foo' }, skip: 20, limit: 10 });

如果希望在結果中進行序列(lie),使用sort參數

Model.find({ where: { name: 'foo' }, skip: 20, limit: 10, sort: 'name DESC' });

下(xia)面(mian)是包含的(de)實現,類似于C#的(de),contaions,表示包含某(mou)些字符的(de)結(jie)果(guo)集

Model.find({  name : 
{
    'contains' : 'zzl'
  }
})

如果希(xi)望(wang)實現數(shu)據庫的枚舉查詢,即in方式(shi),可以這樣(yang)進行

Model.find({
  name : ['Walter', 'Skyler']
});

類(lei)似的,not in操(cao)作代碼(ma)如下

Model.find({
  name: { '!' : ['zzl', 'zql'] }
});

當進行數據比較時,可以使用>,<,<=,>=等(deng)操作(zuo)符

Model.find({ age: { '>=': 21 }})

Waterline查(cha)詢語言非(fei)常強大,幾乎將(jiang)所有查(cha)詢語言的優點都(dou)收錄(lu)了,下(xia)面還有startsWith和endsWith,這類(lei)似于C#里的方(fang)法,“以某些字(zi)段開頭或者結束(shu)”

Model.find({ city: { 'endsWith': 'china' }})

除了有面向對象的方法外,還有SQL的,如like方法,實現(xian)了模(mo)糊查詢

Model.find({ city: { 'like': '%c%' }})

最后再一下(xia)范圍查詢(xun),它實際上(shang)是將多個方法組合在(zai)一起使用(yong),下(xia)面(mian)是查詢(xun)在(zai)2015-10-1到2015-10-30號的數據

Model.find({ date: { '>': new Date('10/1/2015'), '<': new Date('10/30/2015') } })

而相對于查詢來說,添(tian)加,更(geng)新和刪(shan)除就簡(jian)單多了(le),下面代(dai)碼(ma)是對Person表進行(xing)的操作(zuo)

添加

 addUser: function (param,cb) {
        var opt = param || { name: 'zzl' };

        Person.create(opt).exec(function (err, record) {

            console.log("添加")
            if (err) {
                cb('ERROR_DATABASE_EXCEPTION');//輸出錯誤
            } else {

                cb(null, record);//正確返回
            }
        });
    }

 更新

  modify:function(id,param,cb){
        var opt = param || { name: 'zzl' };
        Person.update({id:id},opt,function(err,record){
            console.log("修改")
            if (err) {
                cb('ERROR_DATABASE_EXCEPTION');//輸出錯誤
            }else{

                cb(null, record);//正確返回
            }

        });
    }

刪除

  delete:function(id,cb){
        Person.destroy({id:id}).exec(function(err){
            console.log("刪除,ID:"+id);
            cb(null);
        })

    }

回到目錄

posted @ 2015-10-19 10:37  張占嶺  閱讀(5028)  評論(2)    收藏  舉報