博客
关于我
mongodb 默认端口号_MongoDB的简单使用
阅读量:794 次
发布时间:2023-02-09

本文共 4296 字,大约阅读时间需要 14 分钟。

这次要和大家分享MongoDB 的使用,有时候会用到服务端的一些功能,简单的就可以自己写写,学习一下MongoDB真的是非常不错的选择。MongoDB 官网对其介绍如下:MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

1.安装配置

1.到官网下载安装包 https://www.mongodb.com/try/download/community

d7ef46b6dde6aea4a416f991c08dc844.png

2.安装,下一步即可。

3.安装完成配置环境变量 。系统变量Path中添加 C:\Program Files\MongoDB\Server\4.2\bin。之后重启。

445ee613063f7af29c6597055001ac4c.png

4.查看版本检查是否安装成功

69a876e6bbd06e412055ba5c1846c4ae.png

5.创建数据库和启动服务

1. D盘新建文件夹data,data下面新建文件夹db  2. 打开cmd  ,切换到 C:\Program Files\MongoDB\Server\4.2\bin ,运行 mongod --dbpath D:\data\db

参考下图:

3671277489a51e6590429c178cc552e5.png

2.命令行下的增删改查操作

在创建数据库和启动服务之后另外再开一个命令窗口:

8f43a3ea7671ae75be4ccd9d9428e68b.png

之后就可以使用命令操作数据库了:

1.可以使用show dbs命令查看都有哪些数据库:

b4cca5ed8dedb431e389f166627d9c87.png

2.可以使用use test新建或者切换数据库

7f0eb69e949ec956b5f3b3a0de3000b9.png

3.可以使用insert新增数据,如:

db.test.insert({"name":"zhangw"})

56c1aa5d70eb09dd37b4be850995e6df.png

4.可以使用find查找数据,如:

db.test.find()

3ad802257a3f1be1ecac25c18ce970a2.png

5.可以使用update修改数据,如:

db.test.update({"name":"newName"},{$set:{"age":16}});

20809bb526b0028da719406ade145efb.png

6.可以使用remove删除数据,如:

db.test.remove({"name":"newName"})

5d48bb11fd0c977fac57d098d4518f6a.png

3.图形化工具下的操作

1.下载安装图形化工具 https://robomongo.org/download

2.建立连接

087a3ad5038a0a09ad4669985d4ba665.png

3.使用图形化工具操作数据库

如下图是进行插入操作:

33a2cb0905bf2069eaa1c34b075f45c0.png

如下图是进行查询操作:

9e960290ee80c9bbae04cc432dfb0ebd.png

如下图是进行修改操作:

76ee1e0b76621202cc7184ad01405e97.png

如下图是进行删除操作:

f201588819dc5ac9b32d9ba42f0680b4.png

4.Nodejs中使用 Mongoose 操作

看到了一个新词:Mongoose 。它是啥?一般我们不直接用MongoDB的函数来操作MongoDB数据库。Mongose就是一套操作MongoDB数据库的接口

先来介绍Mongoose里面两个重要的概念:

Schema (模式类型):一种以文件形式存储的数据库模型骨架,不具备数据库的操作能力

Model (模型):由 Schema 发布生成的模型,具有抽象属性和行为的数据库操作

下面看一下如何在node.js中使用Mongose。install mongoose之后,在index.js中添加如下代码:

const mongoose = require('mongoose'); const urlDev = "mongodb://localhost:27017/user" mongoose.connect(urlDev, {      useNewUrlParser: true }) mongoose.connection.on('connected', function () {      console.log(`数据库连接成功了`); }) mongoose.connection.on('error', function () {      console.log('出错了'); }) mongoose.connection.on('disconnected', function () {      console.log('连接断开'); })

上述代码首先引入mongoose,然后建立连接。连接的url地址的形式为:

mongodb://数据库的ip地址:端口号/数据库名

如果端口号是默认的端口号(27017) 则可以省略不写 。

如下代码新建了模式类型然后根据模式类型新建了模型(User):

const User = mongoose.model('user', new mongoose.Schema({        name: {    type: String, require: true},     age: {    type: Number, require: true} }))

下面看一下增删改查这些操作。

4.1 新增数据

User.create({        name: 'newName7',     age: 27 }, (err, doc) => {        if (!err) {            console.log(doc)     } else {            console.log(err)     } })

控制台打印出结果:

{ _id: 5f056c3a8aba110b9cedb9bf,   name: 'newName7',   age: 27,   __v: 0 }

使用图形化工具查看数据库看到一条数据被添加到数据库:

b9942374c51b84ab753cfa708a62c6f3.png

4.2 查找多条数据

在有newName7基础上,再新增一条数据newName6,然后运行查找数据的代码:

User.find({}, (err, doc) => {        if (!err) {            console.log(doc) // 得到的是数组     } else {            console.log(err)     } }

控制台打印结果:

[ { _id: 5f056c3a8aba110b9cedb9bf,     name: 'newName7',     age: 27,     __v: 0 },   { _id: 5f056d66e3bd183dc49e2e89,     name: 'newName6',     age: 26,     __v: 0 }  ]

使用图形化工具查看数据库看到两条数据:

a75c3d3319340f19e592b7b23100ba40.png

4.3 查找一条数据

如果只查找一条数据则需要使用findOne:

User.findOne({}, (err, doc) => {        if (!err) {            console.log(doc) // 得到的是对象     } else {            console.log(err)     } })

控制台打印结果:

{ _id: 5f056c3a8aba110b9cedb9bf,   name: 'newName7',   age: 27,   __v: 0 }

4.4 带条件的查找一条数据

带条件的查找需要在查询条件中添加相应的内容:

User.findOne({    'name': 'newName5'}, (err, doc) => {        if (!err) {            console.log(doc) // 得到的是对象     } else {            console.log(err)     } })

控制台打印结果:

{ _id: 5f0570008a96460f6091cd59,   name: 'newName5',   age: 25,   __v: 0 }

4.5 更新一条数据

使用updateOne更新数据:

User.updateOne({    name: 'newName5'}, {    $set: {    age:22}}, (err,doc) =>{        if (!err) {            console.log(doc)     } else {            console.log(err)     } })

控制台打印结果:

{ n: 1, nModified: 1, ok: 1 }

4.6 更新多条数据

User.updateMany({    name: 'newName5'}, {    $set: {    age:20}}, (err,doc) =>{        if (!err) {            console.log(doc)     } else {            console.log(err)     } })

控制台打印结果:

{ n: 2, nModified: 2, ok: 1 }

使用图形化工具查看数据库看到两条数据被更新了:

e3f04da58406e3565d903ae8144f4eb0.png

4.7 删除多条数据

deleteOne删除一条数据,deleteMany用于删除多条数据:

User.deleteMany({    age: 20}, (err, doc) => {        if (!err) {            console.log(doc)     } else {            console.log(err)     }    })

控制台打印结果:

{ n: 2, ok: 1, deletedCount: 2 }

f64c9ed8bcf9142501fe672e1418eb37.png

4.8 统计数据条数

新增3个25岁的newName,然后统计一下25岁的有几个,使用countDocuments统计个数:

User.countDocuments({    age: 25}, (err, doc) => {        if (!err) {            console.log(doc)         //3     } else {            console.log(err)     }    })

b22e357499610de0d5ffa0e0edf265ef.png

mongoose还有有很多的方法以及高级用法比如聚合、比如关联查询等等,可以自己参照官网去实践练习。这次就和大家分享这么多,下次再见!

参考资料:

https://www.cnblogs.com/dreamsqin/p/10885038.html

https://www.mongodb.org.cn/

https://blog.csdn.net/muguli2008/article/details/80591256

你可能感兴趣的文章
MFC对话框屏幕居中
查看>>
MFC工作笔记0002---MFC HelloWorld程序
查看>>
MFC工作笔记0003---WindowsAPI与MFC的关系
查看>>
MFC工作笔记0004---MFC中afx_msg是什么,afx_msg void function()是什么意思
查看>>
MFC工作笔记0005---::在vc++中是什么意思
查看>>
MFC工作笔记0006---#pragma warning(disable:4996)是什么意思
查看>>
MFC工作笔记0007---消息映射处理
查看>>
MFC工作笔记0008---UDP协议通信_sendto 和 recvfrom 浅析与示例
查看>>
MFC工作笔记0009---VC++中 PostMessage和SendMessage的区别
查看>>
MFC工作笔记0011---atoi的用法
查看>>
MFC常用函数
查看>>
MFC打印和打印预览功能
查看>>
MFC打造Java环境变量设置工具...
查看>>
MFC数据类型
查看>>
MFC显示JPG图片
查看>>
MFC模态对话框和非模态对话框
查看>>
MFC调用DOS窗口显示信息
查看>>
mha高可用
查看>>
MHA高可用架构与Atlas读写分离
查看>>
Miaoo朋友圈程序全完整版源码
查看>>