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 相关文章推荐
JQUBar 基于JQUERY的柱状图插件
Nov 23 Javascript
html a标签-超链接中confirm方法使用介绍
Jan 04 Javascript
js动态移动滚动条至底部示例代码
Apr 24 Javascript
jQuery中scrollTop()方法用法实例
Jan 16 Javascript
js实现无缝滚动特效
Dec 20 Javascript
requireJS使用指南
Apr 27 Javascript
原生JavaScript制作计算器
Oct 16 Javascript
基于jquery.page.js实现分页效果
Jan 01 jQuery
vue内置组件transition简单原理图文详解(小结)
Jul 12 Javascript
Javascript的this详解
Mar 23 Javascript
js中的this的指向问题详解
Aug 29 Javascript
Vue前端项目部署IIS的实现
Jan 06 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实现GIF图片验证码
2015/11/04 PHP
PHP使用PDO操作数据库的乱码问题解决方法
2016/04/08 PHP
php图片添加水印例子
2016/07/20 PHP
jquery限制输入字数,并提示剩余字数实现代码
2012/12/24 Javascript
打印json对象的内容及JSON.stringify函数应用
2013/03/29 Javascript
jquery实现动态菜单的实例代码
2013/11/28 Javascript
JSON无限折叠菜单编写实例
2013/12/16 Javascript
js实现跨域的几种方法汇总(图片ping、JSONP和CORS)
2015/10/25 Javascript
浅谈几种常用的JS类定义方法
2016/06/08 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
Vue.js学习笔记之常用模板语法详解
2017/07/25 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
JavaScript实现构造json数组的方法分析
2018/08/17 Javascript
微信公众号获取用户地理位置并列出附近的门店的示例代码
2019/07/25 Javascript
vue 使用element-ui中的Notification自定义按钮并实现关闭功能及如何处理多个通知
2019/08/17 Javascript
手把手教你如何编译打包video.js
2020/12/09 Javascript
Anaconda 离线安装 python 包的操作方法
2018/06/11 Python
在ubuntu16.04中将python3设置为默认的命令写法
2018/10/31 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
Python中的几种矩阵乘法(小结)
2019/07/10 Python
python中dict使用方法详解
2019/07/17 Python
python3.8与pyinstaller冲突问题的快速解决方法
2020/01/16 Python
利用CSS3的3D效果制作正方体
2020/03/10 HTML / CSS
安德玛比利时官网:Under Armour比利时
2019/08/28 全球购物
季度思想汇报
2014/01/01 职场文书
进步之星获奖感言
2014/02/22 职场文书
元宵节主持词
2014/03/25 职场文书
租房协议书
2014/04/10 职场文书
完美的中文自荐信
2014/05/24 职场文书
行政部经理助理岗位职责
2014/06/15 职场文书
停车位租赁协议书
2014/09/24 职场文书
汉语拼音教学反思
2016/02/22 职场文书
Nginx中break与last的区别详析
2021/03/31 Servers
利用Python读取微信朋友圈的多种方法总结
2021/08/23 Python
光之国的四大叛徒:第一贝利亚导致宇宙毁灭,赛文奥特曼在榜
2022/03/18 日漫