Express使用MongoDB常用操作
const MongoClient = require('mongodb').MongoClient
const url = "mongodb://localhost:27017"
const dbName = 'express-project'
// 连接数据库
MongoClient.connect(url, { useNewUrlParser: true }, (err, client) => {
if (err) throw err
console.log('数据库已连接')
const db = client.db(dbName)
// 创建集合
db.createCollection("user", (err, res) => {
if (err) throw err
console.log('成功创建集合')
})
db.createCollection("alias", (err, res) => {
if (err) throw err
console.log('成功创建集合')
})
// ----------------------插入一条数据
let user = db.collection("user")
let alias = db.collection("alias")
let myInfo = { name: '贾克斯', age: 18 }
user.insertOne(myInfo, (err, res) => {
if(err) throw err
console.log('成功插入一条数据')
})
alias.insertOne({_id: 1}, (err, res) => {
if(err) throw err
console.log('成功插入一条数据')
})
// ----------------------插入多条数据, insertMany()
let myFriends = [
{ name: '菲奥娜', age: 20 },
{ name: '杰斯', age: 19 },
{ name: '弗拉基米尔', age: 25}
]
user.insertMany(myFriends, (err, res) => {
if(err) throw err
console.log(`成功插入${res.insertedCount}条数据!`)
})
// ----------------------查询数据, find(condition)
user.find({ name: '贾克斯' }).toArray((err, docs) => {
console.log('有如下数据:')
console.log(docs)
})
// ----------------------多表联查,左连接查询
user.aggregate([
{
$lookup:{
from: 'alias', //左查询集合
localField: 'alias_id', // 本地字段
foreignField: '_id', // 对应本地字段的左查询集合字段
as: 'userlist'
}
}
]).toArray((err, docs) => {
if (err) throw err
var jsonDoc = JSON.stringify(docs)
console.log(jsonDoc)
})
// ----------------------更新单条数据
alias.updateOne({ "_id": 1 }, {$set:{ "alias": "武器大师"}}, (err, res) => {
if (err) throw err
console.log("文档更新成功")
})
// ----------------------更新多条数据
user.updateMany({ "age": 18 }, { $set: { "relationship": "opponent"}}, (err, res) => {
if (err) throw err
console.log(`${res.result.nModified}条文档被更新了`)
})
// ----------------------删除单条数据
user.deleteOne({name: "杰斯"}, (err, res) => {
if (err) throw err
console.log(`已删除`)
})
// ----------------------删除多条数据
user.deleteMany({age: 18}, (err, res) => {
if (err) throw err
console.log('已删除');
})
// ----------------------删除一个集合
user.drop((err, res) => {
if (err) throw err;
console.log('已删除集合')
client.close()
})
})
Express使用MongoDB常用操作的更多相关文章
- mongodb常用操作语句
mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...
- MongoDB常用操作
(备注: 对于 window, 不需要sudo) 验证成功与否: * 启动服务器: $sudo mongod --dbpath C:\data\db (需要 指明数据库存放的目录) * 打开shell ...
- MongoDB系列:二、MongoDB常用操作练习
最近在自学MongoDB,在此记录一下,当做学习笔记了(不断更新中)!! 一.背景 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存 ...
- MongoDB常用操作一查询find方法db.collection_name.find()
来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...
- MongoDB常用操作--简介
mongodb在项目中使用越来越觉得日志方面的记录和查询是远远优于MySQL的,所以对其一些基本的操作进行了整理,以下就是整理的一些规则插入数据: insert插入多组数据:inserrAll修改数据 ...
- MongoDB常用操作一查询find方法(转)
来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...
- MongoDB常用操作整理
Mongodb:是一种NoSQL数据库,NoSQL:Not Only SQLSQL: 数据表->JDBC读取->POJO(VO.PO)->控制层转化为JSON数据->客户端 这 ...
- MongoDB常用操作--集合2
1.查询集合中的文档,可以使用命令 db.集合名称.find({条件}),或者使用 db.集合名称.findOne() 查询第一个文档 2.查询集合中的文档,返回某些特定的键值 3.查询集合中的文档 ...
- MongoDB常用操作总结
====================================MGDB的操作====================================== 0.创建数据库时使用(use 数据库 ...
随机推荐
- Elasticsearch 5.6.5 安装教程
下载地址 https://www.elastic.co/downloads/past-releases/elasticsearch-5-6-5 安装环境 centos6.5 , jdk1.8 ...
- idea 修改静态资源不需要重启的办法
快捷键Ctrl + Alt + S打开设置面板,勾选Build project automatically选项: 快捷键Ctrl + Shift + A查找registry命令: 在查找到的regis ...
- Linux系统文件权限体系详解
准备工作:先简单了解Linux文件权限 在Linux系统中,ls -l 命令可以查看文件的权限,如 [zhaohuizhen@localhost Test]$ ls -l a -rw-rw-r--. ...
- FileReader 与canvas结合使用显示图片
话不多少,直接上代码 function fileChange() { var file = this.files[0]; var imageType = /^image\//; //是否是图片 if ...
- 一键前端代理,一行命令开启nginx容器,代理前端页面
我们在前端开发的过程中,在对接口时候,往往需要跨域请求,那么及其简便的方法就是使用nginx反向代理,但是存在几点缺点 1.在新的一个项目下,我们需要找到安装nginx目录的nginx.conf文件并 ...
- deepin安装metasploit
[1]安装metasploit 1.curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/tem ...
- HDU 5627 Clarke and MST &意义下最大生成树 贪心
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5627 题意:Bestcoder的一道题,让你求&意义下的最大生成树. 解法: 贪心,我们从高位 ...
- nginx升级步骤
今天应开发的需求,需要在Nginx增加一个模块,并不能影响现有的业务,所以就必须要平滑升级Nginx,好了,不多说了 1:查看现有的nginx编译参数 /usr/local/nginx/sbin/ng ...
- windows下使用github
1.首先到github.com注册用户: 2.下载git,地址:http://pan.baidu.com/s/1skPpWlB(64位下载):http://pan.baidu.com/s/1skOAa ...
- NOIP 2012 Day2
tags: 扩展欧几里得 二分答案 查分 倍增 二分答案 贪心 NOIP categories: 信息学竞赛 总结 同余方程 借教室 疫情控制 同余方程 Solution 首先同余式可以转化为等式. ...