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获取父节点方法
Aug 20 Javascript
jQuery滚动加载图片实现原理
Dec 14 Javascript
AngularJs定制样式插入到ueditor中的问题小结
Aug 01 Javascript
jQuery 特性操作详解及实例代码
Sep 29 Javascript
浅析script标签中的defer与async属性
Nov 30 Javascript
jQuery EasyUI 页面加载等待及页面等待层
Feb 06 Javascript
基于原生js运动方式关键点的总结(推荐)
Oct 01 Javascript
关于angularJs清除浏览器缓存的方法
Nov 28 Javascript
浅析js中mvvm模式实现的原理
Oct 06 Javascript
vue使用微信JS-SDK实现分享功能
Aug 23 Javascript
JS实现的碰撞检测与周期移动完整示例
Sep 02 Javascript
Vue(定时器)解决mounted不能获取到data中的数据问题
Jul 30 Javascript
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
两种php调用Java对象的方法
2006/10/09 PHP
PHP设计模式之迭代器模式的深入解析
2013/06/13 PHP
CI分页类首页、尾页不显示的解决方法
2016/03/28 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
php读取本地json文件的实例
2018/03/07 PHP
Laravel框架使用Seeder实现自动填充数据功能
2018/06/13 PHP
PHP parse_ini_file函数的应用与扩展操作示例
2019/01/07 PHP
根据鼠标的位置动态的控制层的位置
2009/11/24 Javascript
关于JavaScript的面向对象和继承有利新手学习
2013/01/11 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
2014/03/19 Javascript
常用javascript表单验证汇总
2020/07/20 Javascript
javascript判断图片是否加载完成的方法推荐
2016/05/13 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
BootStrap下拉框在firefox浏览器界面不友好的解决方案
2016/08/18 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
信息滚动效果的实例讲解
2017/09/18 Javascript
jQuery实现轮播图源码
2019/10/23 jQuery
Vue事件处理原理及过程详解
2020/03/11 Javascript
Python实现的数据结构与算法之双端队列详解
2015/04/22 Python
python简单实现刷新智联简历
2016/03/30 Python
Zabbix实现微信报警功能
2016/10/09 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python实现各进制转换的总结大全
2017/06/18 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
深入理解Python中的 __new__ 和 __init__及区别介绍
2018/09/17 Python
python实现飞机大战游戏
2020/10/26 Python
Pandas读取csv时如何设置列名
2020/06/02 Python
详解python的super()的作用和原理
2020/10/29 Python
水芝澳美国官网:H2O Plus
2016/10/15 全球购物
AC Lens:购买隐形眼镜
2017/02/26 全球购物
综合内勤岗位职责
2014/04/14 职场文书
优秀教师先进个人事迹材料
2014/08/31 职场文书
幼儿园中班个人总结
2015/02/28 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
运动会口号霸气押韵
2015/12/24 职场文书
SpringDataJPA在Entity中常用的注解介绍
2021/12/06 Java/Android