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 相关文章推荐
一个JQuery操作Table的代码分享
Mar 30 Javascript
js禁止页面使用右键(简单示例代码)
Nov 13 Javascript
动态载入js提高网页打开速度的方法
Jul 04 Javascript
jQuery实现的网页竖向菜单效果代码
Aug 26 Javascript
jQuery+css3实现转动的正方形效果(附demo源码下载)
Jan 27 Javascript
值得分享和收藏的Bootstrap学习教程
May 12 Javascript
简单谈谈JS数组中的indexOf方法
Oct 13 Javascript
Javascript 普通函数和构造函数的区别
Nov 05 Javascript
微信小程序 PHP生成带参数二维码
Feb 21 Javascript
javascript数组常见操作方法实例总结【连接、添加、删除、去重、排序等】
Jun 13 Javascript
layer.open提交子页面的form和layedit文本编辑内容的方法
Sep 27 Javascript
VUE子组件向父组件传值详解(含传多值及添加额外参数场景)
Sep 01 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
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
Windows下的PHP安装文件线程安全和非线程安全的区别
2014/04/23 PHP
ThinkPHP中session函数详解
2016/09/14 PHP
php支付宝APP支付功能
2020/07/29 PHP
PHP文件后缀不强制为.php方法
2019/03/31 PHP
IE6下opacity与JQuery的奇妙结合
2013/03/01 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
jQuery动态添加及删除表单上传元素的方法(附demo源码下载)
2016/01/15 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
Vuejs第一篇之入门教程详解(单向绑定、双向绑定、列表渲染、响应函数)
2016/09/09 Javascript
js实现带三角符的手风琴效果
2017/03/01 Javascript
JavaScript中数组Array.sort()排序方法详解
2017/03/01 Javascript
jQuery插件zTree实现清空选中第一个节点所有子节点的方法
2017/03/08 Javascript
使用JavaScript实现表格编辑器(实例讲解)
2017/08/02 Javascript
vue在使用ECharts时的异步更新和数据加载详解
2017/11/22 Javascript
vue的状态管理模式vuex
2017/11/30 Javascript
vue使用xe-utils函数库的具体方法
2018/03/06 Javascript
JavaScript设计模式之单例模式原理与用法实例分析
2018/07/26 Javascript
Vue父子组件双向绑定传值的实现方法
2018/07/31 Javascript
vue-cli3.0实现一个多页面应用的历奇经历记录总结
2020/03/16 Javascript
python sort、sorted高级排序技巧
2014/11/21 Python
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
从零开始学Python第八周:详解网络编程基础(socket)
2016/12/14 Python
python实现猜数字小游戏
2020/03/24 Python
Python get获取页面cookie代码实例
2018/09/12 Python
Python数据报表之Excel操作模块用法分析
2019/03/11 Python
HTML5有哪些新特征
2015/12/01 HTML / CSS
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
opencv实现图像平移效果
2021/03/24 Python
军人违纪检讨书
2014/02/04 职场文书
个人租房协议书样本
2014/10/01 职场文书
2014大学生学生会工作总结
2014/12/19 职场文书
病房管理制度范本
2015/08/06 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书
Go遍历struct,map,slice的实现
2021/06/13 Golang
详解python的异常捕获
2022/03/03 Python