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 相关文章推荐
IE6,IE7下js动态加载图片不显示错误
Jul 17 Javascript
解决ExtJS在chrome或火狐中正常显示在ie中不显示的浏览器兼容问题
Jan 11 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
Apr 11 Javascript
给应用部分的js代码设定一个统一的入口
Jun 15 Javascript
JavaScript中使用stopPropagation函数停止事件传播例子
Aug 27 Javascript
angular.bind使用心得
Oct 26 Javascript
浅谈js内置对象Math的属性和方法(推荐)
Sep 19 Javascript
Angular和Vue双向数据绑定的实现原理(重点是vue的双向绑定)
Nov 22 Javascript
EasyUI Combobox设置默认值 获取text的方法
Nov 28 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
解决layui数据表格table的横向滚动条显示问题
Sep 04 Javascript
vue+echarts实现动态折线图的方法与注意
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
PHP中的串行化变量和序列化对象
2006/09/05 PHP
详解PHP归并排序的实现
2016/10/18 PHP
老生常谈PHP 文件写入和读取(必看篇)
2017/05/22 PHP
yii2中LinkPager增加总页数和总记录数的实例
2017/08/28 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
使用户点击后退按钮使效三行代码
2007/07/07 Javascript
JavaScript 定义function的三种方式小结
2009/10/16 Javascript
Javascript的一种模块模式
2010/09/08 Javascript
Javascript中设置默认参数值示例
2014/09/11 Javascript
javascript中关于&& 和 || 表达式的小技巧分享
2015/04/10 Javascript
jQuery实现自定义事件的方法
2015/04/17 Javascript
jQuery实现的多滑动门,多选项卡效果代码
2016/03/28 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
JS实现数组去重复值的方法示例
2017/02/18 Javascript
vue下跨域设置的相关介绍
2017/08/26 Javascript
详谈js原型继承的一些问题
2017/09/06 Javascript
JS实现二维数组横纵列转置的方法
2018/04/17 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
JS使用cookie保存用户登录信息操作示例
2019/05/30 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
介绍Python中几个常用的类方法
2015/04/08 Python
Django框架会话技术实例分析【Cookie与Session】
2019/05/24 Python
使用Python实现毫秒级抢单功能
2019/06/06 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
弄懂这56个Python使用技巧(轻松掌握Python高效开发)
2019/09/18 Python
python中栈的原理及实现方法示例
2019/11/27 Python
scrapy结合selenium解析动态页面的实现
2020/09/28 Python
python 基于opencv实现高斯平滑
2020/12/18 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
房屋租赁协议书范本
2014/04/10 职场文书
2014企业领导班子四风对照检查材料思想汇报
2014/09/17 职场文书
绿里奇迹观后感
2015/06/15 职场文书
大脑的记忆过程在做数据压缩,不同图形也有共同的记忆格式
2022/04/29 数码科技