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禁止document element对象选中文本实现代码
Mar 21 Javascript
使用jquery中height()方法获取各种高度大全
Apr 02 Javascript
javascript实现仿腾讯游戏选择
May 14 Javascript
jQuery替换textarea中换行的方法
Jun 10 Javascript
jQuery密码强度检测插件passwordStrength用法实例分析
Oct 30 Javascript
PHP抓取HTTPS内容和错误处理的方法
Sep 30 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
Angular如何在应用初始化时运行代码详解
Jun 11 Javascript
vue ssr 指南详读
Jun 29 Javascript
vue路由前进后退动画效果的实现代码
Dec 10 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
使用vue-cli3 创建vue项目并配置VS Code 自动代码格式化 vue语法高亮问题
May 14 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 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
PHP计数器的实现代码
2013/06/08 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
php intval函数用法总结
2019/04/14 PHP
discuz论坛更换域名,详细文件修改步骤
2020/12/09 PHP
在线编辑器的实现原理(兼容IE和FireFox)
2007/03/09 Javascript
js加解密 脚本解密
2008/02/22 Javascript
用Juery网页选项卡实现代码
2011/06/13 Javascript
js 弹出菜单/窗口效果
2011/10/30 Javascript
JQuery 常用方法和事件详细介绍
2013/04/18 Javascript
javascript的事件触发器介绍的实现
2014/06/05 Javascript
node.js中的fs.chown方法使用说明
2014/12/16 Javascript
javascript中sort()的用法实例分析
2015/01/30 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
浅谈JavaScript中的分支结构
2016/07/01 Javascript
Angular中使用ui router实现系统权限控制及开发遇到问题
2016/09/23 Javascript
javascript高级模块化require.js的具体使用方法
2017/10/31 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
javascript中的隐式调用
2018/02/10 Javascript
使用rollup打包JS的方法步骤
2018/12/05 Javascript
py中的目录与文件判别代码
2008/07/16 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
Python3实现定时任务的四种方式
2019/06/03 Python
安装2019Pycharm最新版本的教程详解
2019/10/22 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
Django Channel实时推送与聊天的示例代码
2020/04/30 Python
python怎么调用自己的函数
2020/07/01 Python
python如何快速拼接字符串
2020/10/28 Python
澳大利亚家具和家居用品购物网站:Zanui
2018/12/29 全球购物
英语专业学子个人的自我评价
2013/10/02 职场文书
历史专业个人求职信分享
2013/12/20 职场文书
2014年发展党员工作总结
2014/11/12 职场文书
开除员工通知
2015/04/22 职场文书
幼儿园中班班级总结
2015/08/10 职场文书