文章出處
文章列表
上講主要說了如何配置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); }) }
文章列表
全站熱搜