ThinkJS中MongoDB的CURD操作是什么?CURD操作的使用教程

前言

众所周知目前使用Node.js + mongodb已经成为很多公司的技术栈。ThinkJS其实也提供了对mongo的支持,虽然官方文档较少,但是保证了ORM的API的一致性,所以用起来需要查看基本的>Model api

基本的模型文件放在common/model下

获取列表

getList(q, page) {

returnthis.select();

}

分页加条件搜索

search(q, page) {

if(q) {

q =newRegExp(q,'i');

}

returnthis.where({'name':{ $regex: q}}).page(page, 20).countSelect();

}

获取详情

getDetail(id) {

returnthis.where({'_id':id}).select();

}

创建数据

addTag(tag) {

returnthis.add(tag);

}

更新数据

updateTag(id,data) {

returnthis.where({'_id':id}).update(data);

}

删除数据

removeOne(id) {

returnthis.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);

}

}

....

时间: 2024-07-29 11:41:00

ThinkJS中MongoDB的CURD操作是什么?CURD操作的使用教程的相关文章

安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了?

问题描述 安卓开发中某一个界面还没等你操作呢 自己就没了 哪里出问题了? 问题如上 好困惑! 解决方案 自己就没了,是返回上一级页面么?还是什么?有可能是AndroidManifest.xml文件里activity配置的问题.. 解决方案二: 出现fatal crash了把,抓下log看看. 解决方案三: 贴出代码,贴出log,才好分析,这样描述太抽象 解决方案四: 看一下log日志,看看错误信息. 解决方案五: 这个问题问的有点抽象能不能再具体些

在.net中利用数据工厂实现多数据库的操作

在项目的开发过程中,在设计模式的概念还没有出来时,我们那时候在编写程序时,往往如果项目的数据库是采用SQL Server,然后用户又想换其它数据库如Oracle时,我们就需要对其代码进行重写,特别是在一些软件的产品化道路中,我们做出来的产品如果让用户可以有选择的去选取各种数据库,那无疑对用户提供了很大的方便. 自从工厂模式的设计理念出来以后,这一切实现就变得容易得多,如果大家对微软的PETSHOP有研究的话,那就不会陌生了,从PETSHOP3.0开始,微软就开始采用了多数据库操作系统的应用.数据

解析在PHP中使用mysqli扩展库对mysql的操作

本篇文章是对在PHP中使用mysqli扩展库对mysql的操作进行了详细的分析介绍,需要的朋友参考下   1.在PHP中 使用mysqli扩展库对mysql 的dql操作 复制代码 代码如下: <?php     header("Content-type: text/html;charset=utf-8");     //mysqli操作mysql数据库(面向对象方式)     //1.创建MySQLi对象     $mysqli =new MySQLi("localh

在Python中操作文件之truncate()方法的使用教程

  这篇文章主要介绍了在Python中操作文件之truncate()方法的使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下 truncate()方法截断该文件的大小.如果可选的尺寸参数存在,该文件被截断(最多)的大小. 大小默认为当前位置.当前文件位置不改变.注意,如果一个指定的大小超过了文件的当前大小,其结果是依赖于平台. 注意:此方法不会在当文件工作在只读模式打开. 语法 以下是truncate()方法的语法: ? 1 fileObject.truncate( [ size

Python中操作文件之write()方法的使用教程

  这篇文章主要介绍了Python中操作文件之write()方法的使用教程,是Python入门学习中的基础知识,需要的朋友可以参考下 write()方法把字符串str写入文件.没有返回值.由于缓冲,字符串可能不实际显示文件,直到flush()或close()方法被调用. 语法 以下是write()方法的语法: ? 1 fileObject.write( str ) 参数 str -- 这是要被写入的文件中的字符串. 返回值 此方法不返回任何值. 例子 下面的例子显示write()方法的使用. ?

Windows中无法对特殊文件名木马进行删除操作

        我们都知道,木马病毒的特点是隐蔽,一旦暴露了,那么用杀毒软件查杀一下就OK了,即使是某些比较顽固的木马病毒,最多也只要进入安全模式进行查杀 即可.但是有一类木马病毒却不同,它们不仅具有木马病毒的隐藏特点,同时还极难清除.为什么这些特殊文件名木马病毒难以清除干净呢? 为什么Windows中无法对特殊文件名木马进行删除操作呢? 这些木马病毒利用了Windows的一些"漏洞",建立了一个特殊文件名的程序或文件夹,而在Windows中,我们是无法对其进行删除操作的.那么怎样才能

汇编-c/c++ 函数调用中形参为指针或者引用对栈操作问题

问题描述 c/c++ 函数调用中形参为指针或者引用对栈操作问题 问题引出: 当我们的函数参数为普通变量或指针时,我们在调用过程中会拷贝一个副本,而当形参为引用时不会拷贝一个副本. 当形参为普通变量时,会拷贝一个变量备份,当为指针时会拷贝一个指针备份,指针指向的内容不会拷贝 问题来了: 查看使用指针和使用引用的方式调用的函数的汇编代码,会发现在汇编代码层面实现方式是一模一样的,都是: lea eax,[i](假设i是整形变量) push eax 而使用值传递方式是: mov eax,dword p

PHP中SERIALIZE和JSON的序列化与反序列化操作区别分析_php技巧

本文实例讲述了PHP中SERIALIZE和JSON的序列化与反序列化操作区别.分享给大家供大家参考,具体如下: PHP中SERIALIZE和JSON序列化与反序列化区别是什么呢,对于这个问题我们可以和小编一起来看看,具体的操作细节如下所示. 在PHP中,serialize和json两种方式对一个对象或数组进行序列化或反序列化有什么区别呢? 假设一个对象和一个数组: $web = new stdClass; $web->site = 'tantengvip'; $web->owner = 'tu

拷贝文件-嵌入式系统中拷贝图片文件和拷贝txt文件操作相同吗?

问题描述 嵌入式系统中拷贝图片文件和拷贝txt文件操作相同吗? 在嵌入式系统中实现不同目录间的文件拷贝,现在想拷贝图片,能用标准io进行拷贝吗,会不会有什么问题? 解决方案 没有问题,都是文件,一样的拷贝.