分享一个关于redis 的orm框架 node-ron 使用
今天好累....下班去健身房跑步运动,看着这一身肥肉,希望未来的几个月内能有一点改变,健康最重要,大家要多注意身体.
开始说正题,成熟的orm框架大部分来自关系型数据库.
KV数据库的orm还是比较少的,但是增速很快,支持mongodb的也陆续出来,但是如果你想找一款 redis 的orm真的少的可怜.
github地址:https://github.com/wdavidw/node-ron
用的人还是不多,作者官网以及测试用例用coffee script 做demo ,实在不感冒.
所以我在自己把每个api 测试一把,回头奉上,所以今天的博客注定又是不完整的,现在开始写,争取做一个完整示例来说比较好.
//连接 redis 服务器 ron = require('ron'); //类似获取到一个数据库对象 client = ron({ port: 6379, host: '127.0.0.1', name: 'auth' }); //类似获取到数据库中的一个集合 var Users = client.get('users'); //类似设置字段属性 Users.property('id', {identifier: true}); //自增id Users.property('username', {unique: true}); //unique 保证在库里唯一 Users.property('name', {index: true}); //此字段建立索引 //增加 //var records = {username: 'zhangzhi'}; //插入的字段可以是上面定义字段的子集,也可以插入上面未定义的字段,如下 var records = {username: 'zhangzhi',blog:'一介布衣'};//blog 可以插入,相当是这样定义 Users.property('blog'); Users.create(records, function (err, user) { callback(err, util.inspect(user)); //返回错误信息 和被成功插入的对象,我这里测试所以用util 转成字符串 }) //如果插入不成功,将返回错误信息 和 null //删除 //参数是记录id Users.remove(2,function(err,removed){ console.log('*******',err,removed); }) //如果成功 err=null , removed 是一个整形 ,表示删除记录的条数 //如果失败 err=失败信息 , removed=null //修改 Users.update({username:"zhangzhi",blog:"一介布衣"},function(err,newinfo){ console.log('------',err,newinfo);//直接把上面 create 方法插入的数据更新了 }) //参数是一个对象,里面至少有一个属性是不变的,什么意思 {id , name , username , blog }4个字段至少有一个是不变,根据此不变字段去找到旧的记录(最好是唯一的字段id) 其他字段都是可以更新的,当然你也可以有多个字段是不变的(这样查找旧记录更精准) 如果全部字段都变了.那你为啥不create 一条记录呢? //查找,分3种 1.查找详情 var {username: 'zhangzhi'}; Users.get(records,function(err,item){ console.log('-----',err,item); }) //get 方法获取详情,所以它获取的就是唯一的记录,所以要特别注意的是:必须用你定义自增ID或者唯一不重复字段来获取,使用其他未定义字段,或者值可以重复的字段获取都会报错 2.查找列表 Users.list({username:"zhangzhi",name:"xiaoxaio"},function(err,list){ console.log('******',err,list); }); //参数是一个过滤器,可以是你定义的一个或者多个字段,还有其他可选项如下: sort:'asc' //默认 asc ,可以的 desc properties:['username','name'] //表示列表要返回的字段,无此项时列出记录所有字段 3.查看全部集合 Users.all(function(err,items){ console.log('-----',err,items); }); //没有参数,获取集合下的全部记录,如果数据比较多,慎用此api //还有其他几个有意思是 api 1.更新自增字段 (把之前的唯一自增字段变成另外一个唯一数字) Users.id(records,function(err,ids){ console.log(err,ids); }) //更新成功,返回新id值 2.如果你有点记录没有唯一标识(自增字段)可以重新补一个 Users.identify(records,function(err,addID){ }) 3.查看某一条记录是否已经存在 Users.exists(records, function (err, count) { //如果不存在,err=null ,count=null //如果存在 err=null, count=整型值(存在记录的条数) }) //上面参数 records 是一个过滤对象,可以一个或多种参数 {username:"zhangzhi",blog:"一介布衣blog"}
***********未完待续************