数据库操作

MongoDB >= 4.0

设置表中字段类型

db_set_field_type('mall_tea',[
    'num'=>'int',
    'less_num'=>'int',
    'max_num'=>'int',
    'price'=>'float', 
]);

where条件

'title[~]'  => '标题',   //LIKE查寻
'title'     => '标题',   // = 查寻
'title'     => [1,2]    // IN查寻
'age[>]'    => 18       //大于
'age[>=]'   => 18       //大于等于
'age[<]'    => 18       //小于
'age[<=]'   => 18       //小于等于
'age[<>]'   => [12,18]  // 大于等于 小于等于 
'age[!]     => 1        //不等于
'age[!]     => [1,2]    // NOT IN

获取数量

db_get_count($table,$call)

计算SUM

db_get_sum($table,$field,$where)

分页

db_pager($table,$where)

查寻多条记录

db_get($table,$where,$limit)

$limit为1时返回一行记录

查寻action

add_action("db.get.$table",function(&$one){});

添加记录

db_insert($table,$data)

触发的action

$ref = ['data'=>$data,'id'=>$id];
do_action("db.insert.before.".$table,$data);  //添加成功前
do_action("db.insert.".$table,$ref); //添加成功后

更新记录

db_update($table,$update_data,$where)

触发的action

$ref = ['data'=>$update_data,'where'=>$where];
do_action("db.update.before.".$table,$ref); //更新前
do_action("db.update.".$table,$ref); //更新后

数据库删除记录

db_del($table,$where)

删除前会触发

$ref = ['where'=>$where];
do_action("db.del.".$table,$ref);

mongodb事务

mongo_action(function()use($data){
   //这里执行各种操作如 db_insert db_update db_del
});

GROUP BY

$a = date("Y-m-d 00:00:00",$yesterday);
$b = date("Y-m-d 23:59:59",$yesterday);
$where['created_at[<>]'] = [$a,$b];  //区间大于等于,小于等于
$where["GROUP"] = ['type','nid'];
$all = db_get("hardware",["SUM(price)"=>'amount',],$where);
$d['list'] = db_get("hardware",[
     "SUM(t)"=>'t',
     'min(t)'=>'t1',
],[ 
  'drive[!]'=>['gx'],
  'GROUP'=> [
    'tag',
    'drive', 
  ],
  'HAVING'=>[
      't[>]'=>0
  ],
  'ORDER'=>[
    't'=>'asc'
  ]
]);

设置或取ID

get_id_by_auto_insert($table,$data = [],$where = [],$has_time_and_update = false)

取一条或多条记录

get_all_or_one($table,$where,$fun = '',$limit = '')

get_all_or_one("novel_book",$where,'get_novel_book_row');
fucntion get_novel_book_row(&$v){}

处理常用的主题收藏等类似操作。

是否收藏

get_node_fav_is($nid,$user_id,$type='default')

收藏列表

get_node_favs($user_id,$type='default')

主题 收藏数量

get_node_fav_count($nid,$type='default')

收藏或取消收藏

set_node_fav($nid,$user_id,$type='default')

取用户TAG

get_user_tag()
get_user_tag($user_id = '')

取用户信息

get_user($user_id);