• 首页
  • redis
  • 分享一个关于redis 的orm框架 node-ron 使用

分享一个关于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"}


***********未完待续************


回到顶部