文章出處

回到目錄

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

find,查詢并返回結果集

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

上面查詢name等于foo的集合,如果希望返回分頁結果,可以使用limit和skip參數,如下

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

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

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

下面是包含的實現,類似于C#的,contaions,表示包含某些字符的結果集

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

如果希望實現數據庫的枚舉查詢,即in方式,可以這樣進行

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

類似的,not in操作代碼如下

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

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

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

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

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

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

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

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

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

而相對于查詢來說,添加,更新和刪除就簡單多了,下面代碼是對Person表進行的操作

添加

 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);
        })

    }

回到目錄


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()