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常用操作的更多相关文章

  1. mongodb常用操作语句

    mongodb常用操作语句 A:创建数据表 db.createCollection(name, {capped: <Boolean>, autoIndexId: <Boolean&g ...

  2. MongoDB常用操作

    (备注: 对于 window, 不需要sudo) 验证成功与否: * 启动服务器: $sudo mongod --dbpath C:\data\db (需要 指明数据库存放的目录) * 打开shell ...

  3. MongoDB系列:二、MongoDB常用操作练习

    最近在自学MongoDB,在此记录一下,当做学习笔记了(不断更新中)!! 一.背景 MongoDB 是一个基于分布式文件存储的数据库.由 C++ 语言编写.旨在为 WEB 应用提供可扩展的高性能数据存 ...

  4. MongoDB常用操作一查询find方法db.collection_name.find()

    来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...

  5. MongoDB常用操作--简介

    mongodb在项目中使用越来越觉得日志方面的记录和查询是远远优于MySQL的,所以对其一些基本的操作进行了整理,以下就是整理的一些规则插入数据: insert插入多组数据:inserrAll修改数据 ...

  6. MongoDB常用操作一查询find方法(转)

    来:http://blog.csdn.net/wangli61289/article/details/40623097 https://docs.mongodb.org/manual/referenc ...

  7. MongoDB常用操作整理

    Mongodb:是一种NoSQL数据库,NoSQL:Not Only SQLSQL: 数据表->JDBC读取->POJO(VO.PO)->控制层转化为JSON数据->客户端 这 ...

  8. MongoDB常用操作--集合2

    1.查询集合中的文档,可以使用命令 db.集合名称.find({条件}),或者使用 db.集合名称.findOne() 查询第一个文档 2.查询集合中的文档,返回某些特定的键值 3.查询集合中的文档 ...

  9. MongoDB常用操作总结

    ====================================MGDB的操作====================================== 0.创建数据库时使用(use 数据库 ...

随机推荐

  1. js获取摄像头视频流

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. bzoj 1776: [Usaco2010 Hol]cowpol 奶牛政坛——树的直径

    农夫约翰的奶牛住在N (2 <= N <= 200,000)片不同的草地上,标号为1到N.恰好有N-1条单位长度的双向道路,用各种各样的方法连接这些草地.而且从每片草地出发都可以抵达其他所 ...

  3. VMware 12安装虚拟机Mac OS X 10.10使用小技巧(虚拟机Mac OS X 10.10时间设置,虚拟机Mac OS X 10.10通过代理上网,Mac OS X 10.10虚拟机优化,VMware虚拟机相互复制)

    1:修改Mac OS 系统时间 2:Mac OS系统 通过代理上网 VMware 12安装Mac OS X 10.10虚拟机优化心得 虚拟显卡硬伤,所以必须要优化下才能用,优化的原则就是能精简的精简, ...

  4. this的九种常用场景(转子jb51.net)

    [场景1]全局环境中的this指向全局对象 ; alert(a); b = ; alert( ; [场景2]对象内部函数的this指向调用函数的当前对象 ; var bar = { a: , test ...

  5. CursorFileManager对cursor文件的读写

    public class CursorFileManager implements CursorManager{public void write(String key, LongCursor cur ...

  6. Java 中的方法内部类

    方法内部类就是内部类定义在外部类的方法中,方法内部类只在该方法的内部可见,即只在该方法内可以使用. 一定要注意哦:由于方法内部类不能在外部类的方法以外的地方使用,因此方法内部类不能使用访问控制符和 s ...

  7. sk_buff结构

    sk_buff结构用来描述已接收或者待发送的数据报文信息:skb在不同网络协议层之间传递,可被用于不同网络协议,如二层的mac或其他链路层协议,三层的ip,四层的tcp或者udp协议,其中某些成员变量 ...

  8. perl多线程tcp端口扫描器(原创)

    perl多线程tcp端口扫描器(原创) http://bbs.chinaunix.net/thread-1457744-1-1.html perl socket 客户端发送消息 http://blog ...

  9. caffe Python API 之InnerProduct

    net.fc3 = caffe.layers.InnerProduct(net.pool1, num_output=1024, weight_filler=dict(type='xavier'), b ...

  10. git学习笔记二-branch分支

    1.刚创建好的空仓库的分支是空的,即使是master分支也是不存在的.master分支是不能通过git branch 来创建的,只有在完成第一次提交才会自动创建,有git自动完成master分子的创建 ...