Mongodb入门5
最近在用MongoDBKoa2做个小项目,记录一下:
首先,如何连接线上数据库:
const url = `mongodb://user:pwd@ipaddr:27017/Blog`;
const monk = require('monk');
const db = monk(url); db.then(() => {
console.log('MongoDB数据库连接成功!')
}) module.exports = db;
实际操作:
模糊查询
通过$regex来实现
const query = { name: { $regex: new RegExp(name) } };
获取查询出来的总数量,分页
const count = await tagsCol.count(query);
let list = await tagsCol.find(query, {
projection: { _id: 0 },
...new ctx.MongoQuery.Pagination(page, size),
});
MongoQuery.js
var Pagination = require('./Pagination');
function MongoQuery() { }
MongoQuery.Pagination = Pagination;
module.exports = () => async (ctx, next) => {
ctx.MongoQuery = MongoQuery;
await next();
}
字段筛选
// 0 就是不显示,1就是显示
projection: { _id: 0 },
整体代码如下:
const router = require('koa-router')()
const db = require('../db');
const tagsCol = db.get('tags')
router.prefix('/tags')
/**
* @ / 查询列表分页
* @ /insert 新增数据
* @ /update 修改数据
* @ /drop 删除数据
* @ /all 查询所有数据
*/
router.get('/', async (ctx, next) => {
const { name, page, size } = ctx.query;
const query = { name: { $regex: new RegExp(name) } };
try {
const count = await tagsCol.count(query);
let list = await tagsCol.find(query, {
projection: { _id: 0 },
...new ctx.MongoQuery.Pagination(page, size),
});
ctx.body = new ctx.JsonResponse(200, { list, count })
} catch (e) {
ctx.body = new ctx.JsonResponse(500, {})
}
db.close();
});
router.get('/insert', async (ctx, next) => {
ctx.body = '插入成功!';
});
router.post('/update', async (ctx, next) => {
ctx.body = 'this is a users/bar response'
});
router.get('/drop', async (ctx, next) => {
const { id } = ctx.query;
try {
await tagsCol.remove({ id: Number(id) });
ctx.body = new ctx.JsonResponse(200)
} catch (e) {
ctx.body = new ctx.JsonResponse(500)
}
db.close();
});
module.exports = router
Mongodb入门5的更多相关文章
- MongoDB 入门之基础 DCL
此文章主要记录部分主要的 MongoDB 的 DCL 操作. MongoDB 默认不需要用户名和密码就可以用 mongodb.exe 登录 一.开启 MonogoDB 的权限模式 修改 MongoDB ...
- MongoDB入门三:MongoDB shell
MongoDB shell MongDB shell是一个功能完备的Javascript解释器,可以运行Javascript程序.也可以用于连接MongoDB服务器,执行脚本,对数据库进行操作.类似于 ...
- MongoDB 入门之查询(find)
MongoDB 入门之查询(find) 1. find 简介 (1)find的第一个参数决定了要返回哪些文档. 空的查询文档会匹配集合的全部内容.默认就是{}.结果将批量返回集合c中的所有文档. db ...
- MongoDB入门简介
MongoDB入门简介 http://blog.csdn.net/lolinzhang/article/details/4353699 有关于MongoDB的资料现在较少,且大多为英文网站,以上内容大 ...
- mongodb入门教程二
title: mongodb入门教程二 date: 2016-04-07 10:33:02 tags: --- 上一篇文章说了mongodb最基本的东西,这边博文就在深入一点,说一下mongo的一些高 ...
- mongodb入门教程
title: mongodb入门教程 date: 2016-04-06 14:47:18 tags: --- 为什么要认识呢,因为这玩意就一傻逼 借用一下百科的介绍 MongoDB 是一个介于关系数据 ...
- MongoDb 入门教程
MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数据存储解决方案,经常被用于非关系型数据的存储,能存储海量的数据. 常 ...
- MongoDB入门必读(概念与实战并重)
MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个 ...
- mongodb入门很简单(3)
##简单的mongodb入门命令## 1.show dbs; //查看当前数据库 2.use databaseName; //选库 3.show tables/collec ...
- MongoDB入门实践
MongoDB入门实践 简单介绍MongoDB,包括MongoDB的使用场景.和MySQL的对比.安装部署.Java客户端访问及总结 MongoDB? 我们遵循需求驱动技术的原则,通过一个场景来引入M ...
随机推荐
- 在MoneyPrinterPlus中使用本地chatTTS语音模型
之前MoneyPrinterPlus在批量混剪,一键AI生成视频这些功能上的语音合成功能都用的是云厂商的语音服务,比阿里云,腾讯云和微软云. 云厂商虽然提供了优质的语音服务,但是用起来还是要收费. 为 ...
- TP5系列 | Queue消息队列
消费信息如下ThinkPHP5 Queue消息队列 优点 1.Queue内置了 Redis,Database,Topthink ,Sync这四种驱动,本文使用Redis驱动 2.Queue消息队列适用 ...
- CSS+JS 实现动态曲线进度条
由于系统UI风格升级,产品童鞋和UI童鞋总是想要搞点儿事情出来,项目页面上的进度条从直线变成了曲线,哈哈,好吧,那就迎难而上 实现效果: 1.简单搞一搞 CSS , 此处代码有折叠 .process ...
- [oeasy]python0078_变量部分总结_variable_summary
删除变量 回忆上次内容 上次研究了变量的死 有生就有死 原本的死是在程序退出的时候自动执行的 也可以手动给变量执行死刑 del del(a)之后 dir()就无法在当前作用域(scope)内观 ...
- 如何解决 CentOS 7 官方 yum 仓库无法使用的问题
一.背景介绍 2024 年 7 月 1 日,在编译基于 CentOS 7.6.1810 镜像的 Dockerfile 过程中,执行 yum install 指令时,遇到了错误:Could not re ...
- JMeter 后置处理器之JSON提取器
后置处理器之JSON提取器 By:授客 QQ:1033553122 测试环境 JMeter 5.4.1 插件介绍 JSON后置处理器(PostProcessor)允许使用 JSON Path 语法从J ...
- 搭建php环境
nginx安装在宿主机上 db: 正式采用阿里云rds 测试使用docker安装 注意:报错一般都是需要配置国内镜像源,看之前的配置记录. 除了关闭防火墙,还要设置这个(本地开发环境) 永久关闭 SE ...
- XCode 编译 PAG 源码
最近工作中要使用PAG替换Lottie,为了方便阅读源码,使用XCode对其源码进行了编译. 1 下载源码 编译源码首先要下载源码,有关PAG源码可直接到github上下载. 2 添加相关依赖 下载源 ...
- dcoker file
dockerfile是来构建镜像文件 [root@docker docker-test-volume]# pwd /home/docker-test-volume vi ./dockerfile 通过 ...
- Linux环境 yum,apt-get,rpm,wget 区别
Linux环境 yum,apt-get,rpm,wget 区别 一般来说linux系统基本上分两大类:cat /etc/issue查看linux系统版本RedHat系列:Redhat.Centos.F ...