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选择器之内容过滤选择器详解
Jan 27 Javascript
Windows 系统下安装和部署Egret的开发环境
Jul 31 Javascript
返回顶部按钮响应滚动且动态显示与隐藏
Oct 14 Javascript
JavaScript实现的圆形浮动标签云效果实例
Aug 06 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
Bootstrap Fileinput文件上传组件用法详解
May 10 Javascript
jQuery实现鼠标滚动图片延迟加载效果附源码下载
Jun 28 Javascript
Bootstrap超大屏幕的实现代码
Mar 22 Javascript
Node.js模块全局安装路径配置方法
May 17 Javascript
Vue中的基础过渡动画及实现原理解析
Dec 04 Javascript
vue动态路由:路由参数改变,视图不更新问题的解决
Nov 05 Javascript
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
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数组中删除元素的实现代码
2012/06/22 PHP
jquery不支持toggle()高(新)版本的问题解决
2016/09/24 PHP
PHP中trait使用方法详细介绍
2017/05/21 PHP
javascript高亮效果的二种实现方法
2008/09/14 Javascript
打豆豆小游戏 用javascript编写的[打豆豆]小游戏
2013/01/08 Javascript
js常用自定义公共函数汇总
2014/01/15 Javascript
js使用for循环查询数组中是否存在某个值
2014/08/12 Javascript
js图片轮播特效代码分享
2015/09/07 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
以jQuery中$.Deferred对象为例讲解promise对象是如何处理异步问题
2015/11/13 Javascript
jQuery实现div拖拽效果实例分析
2016/02/20 Javascript
jquery实现拖动效果
2016/08/10 Javascript
bootstrap与Jquery UI 按钮样式冲突的解决办法
2016/09/23 Javascript
vue2.0 路由不显示router-view的解决方法
2018/03/06 Javascript
在vue项目中引用Iview的方法
2018/09/14 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
JavaScript中的函数申明、函数表达式、箭头函数
2019/12/06 Javascript
微信小程序实现自定义动画弹框/提示框的方法实例
2020/11/06 Javascript
[57:18]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#3VP VS VG
2016/03/03 DOTA
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python判断图片宽度和高度后删除图片的方法
2015/05/22 Python
python控制台中实现进度条功能
2015/11/10 Python
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
Python实现压缩文件夹与解压缩zip文件的方法
2018/09/01 Python
Python小游戏之300行代码实现俄罗斯方块
2019/01/04 Python
selenium python 实现基本自动化测试的示例代码
2019/02/25 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
pytorch打印网络结构的实例
2019/08/19 Python
用Python 爬取猫眼电影数据分析《无名之辈》
2020/07/24 Python
家具促销活动方案
2014/02/16 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
数学教师求职信范文
2015/03/20 职场文书
《认识钟表》教学反思
2016/02/16 职场文书
解决SpringBoot文件上传临时目录找不到的问题
2021/07/01 Java/Android
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
TaiShan 200服务器安装Ubuntu 18.04的图文教程
2022/06/28 Servers