ThinkJS中如何使用MongoDB的CURD操作


Posted in Javascript onDecember 13, 2016

前言

众所周知目前使用Node.js + mongodb已经成为很多公司的技术栈。ThinkJS其实也提供了对mongo的支持,虽然官方文档较少,但是保证了ORM的API的一致性,所以用起来需要查看基本的>Model api

基本的模型文件放在common/model下

获取列表

getList(q, page) { 
 return this.select();
 }

分页加条件搜索

search(q, page) { 
 if(q) {
  q = new RegExp(q,'i');
 }
 return this.where({'name':{ $regex: q}}).page(page, 20).countSelect();
 }

获取详情

getDetail(id) { 
  return this.where({'_id':id}).select(); 
 }

创建数据

addTag(tag) { 
 return this.add(tag);
 }

更新数据

updateTag(id,data) { 
 return this.where({'_id':id}).update(data);
 }

删除数据

removeOne(id) {
 return this.where({'_id':id}).delete();
 }

这样你需要什么只需要调用相应模型的方法就好了。

一个简单的接口如下:

async createAction() { 
 let name = this.post('name');
 let contents = this.post('contents');
 // 获取模型实例
 let m = this.model('tag');
 let res = await m.addTag({
  'name': name,
  'contents': contents,
  'count': 0,
 });
 if(res) {
  this.success('');
 }else{
  this.apiErrorHandle(4000);
 }
 }
 ....

总结

以上就是这篇文章的全部内容改了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流。

Javascript 相关文章推荐
js 实现无缝滚动 兼容IE和FF
Jul 15 Javascript
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
Sep 17 Javascript
深入理解JS实现快速排序和去重
Oct 17 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
Nov 24 Javascript
jQuery实现页面滚动时智能浮动定位
Jan 08 Javascript
node.js用fs.rename强制重命名或移动文件夹的方法
Dec 27 Javascript
js 实现复选框只能选择一项的示例代码
Jan 23 Javascript
webpack css加载和图片加载的方法示例
Sep 11 Javascript
layui表格 列自动适应大小失效的解决方法
Sep 06 Javascript
有关vue 开发钉钉 H5 微应用 dd.ready() 不执行问题及快速解决方案
May 09 Javascript
jQuery+ThinkPHP实现图片上传
Jul 23 jQuery
Bootstrap Img 图片样式(推荐)
Dec 13 #Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
Dec 13 #Javascript
教大家轻松制作Bootstrap漂亮表格(table)
Dec 13 #Javascript
AngularJS自定义控件实例详解
Dec 13 #Javascript
Node.js中process模块常用的属性和方法
Dec 13 #Javascript
Angular ng-repeat遍历渲染完页面后执行其他操作详细介绍
Dec 13 #Javascript
node.js 和HTML5开发本地桌面应用程序
Dec 13 #Javascript
You might like
《APMServ 5.1.2》使用图解
2006/10/23 PHP
Windows Apache2.2.11及Php5.2.9-1的安装与配置方法
2009/06/08 PHP
收集的二十一个实用便利的PHP函数代码
2010/04/22 PHP
php中call_user_func函数使用注意事项
2014/11/21 PHP
Zend Framework框架教程之Zend_Db_Table_Rowset用法实例分析
2016/03/21 PHP
JavaScript实现删除电脑的关机键
2016/07/26 PHP
laravel框架select2多选插件初始化默认选中项操作示例
2020/02/18 PHP
JavaScript prototype属性深入介绍
2012/11/27 Javascript
JS图片无缝滚动(简单利于使用)
2013/06/17 Javascript
jQuery实现异步获取json数据的2种方式
2014/08/29 Javascript
第七章之菜单按钮图标组件
2016/04/25 Javascript
浅析BootStrap中Modal(模态框)使用心得
2016/12/24 Javascript
layui弹出层效果实现代码
2017/05/19 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
详解vue+css3做交互特效的方法
2017/11/20 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
swiper移动端轮播插件(触碰图片之后停止轮播)
2017/12/28 Javascript
vue.js使用watch监听路由变化的方法
2018/07/08 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
在Python中使用itertools模块中的组合函数的教程
2015/04/13 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
Python numpy 点数组去重的实例
2018/04/18 Python
Python3模拟登录操作实例分析
2019/03/12 Python
numpy 返回函数的上三角矩阵实例
2019/11/25 Python
使用 Python 写一个简易的抽奖程序
2019/12/08 Python
用html5实现语音搜索框的方法
2014/03/18 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
印度尼西亚手表和包包商店:Urban Icon
2019/12/12 全球购物
广州一家公司的.NET面试题
2016/06/11 面试题
what is the difference between ext2 and ext3
2013/11/03 面试题
大学生文员专业个人求职信范文
2014/01/05 职场文书
团党委领导干部党的群众路线教育实践活动个人对照检查材料思想汇
2014/10/05 职场文书
夫妻双方自愿离婚协议书怎么写
2014/12/01 职场文书
本科毕业论文指导教师评语
2014/12/30 职场文书
数据库的高级查询六:表连接查询:外连接(左外连接,右外连接,UNION关键字,连接中ON与WHERE的不同)
2021/04/05 MySQL