Node.js教程 Sails中间查询语言Waterline详解
沉沙 2018-07-26 来源 : 阅读 1374 评论 0

摘要:本篇Node.js教程探讨了Sails中间查询语言Waterline,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

本篇Node.js教程探讨了Sails中间查询语言Waterline,希望阅读本篇文章以后大家有所收获,帮助大家对Node.js的理解更加深入。

上讲主要说了如何配置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);

        })

 

    }

 

本文由职坐标整理发布,欢迎关注职坐标Node.js频道,学习更多WEB前端知识!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程