MongoDB数据库入门

一、下载安装

1.1 MongoDB下载安装

下载地址https://www.mongodb.com/try/download/community
我下载的是最新的版本 7.0.2,windows的msi安装包,
安装步骤双击安装包打开 -> next -> 接受协议 -> next -> 选择Custom版本 -> 更改安装位置 -> next -> 使用默认的 Run service as Network Service user 就好,然后检查一下data和log的位置 -> next -> 取消勾选 Install MongoDB Compass->next->Install

1.2 MongoDB shell下载安装

下载地址https://www.mongodb.com/try/download/shell
下载最新版本2.0.2,windows的msi安装包,
在MongoDB的文件夹中新建文件夹mongoshell。
安装步骤双击安装包打开 -> next -> 更改位置为mongoshell -> next -> Install
下载好以后可以使用下载好的 mongosh.exe 打开mongoDB命令行,也可以使用cmd输入 mongosh 打开。

1.3 DataGrip连接mongoDB

首先需要下载jdbc驱动,官网给的网址:https://repo1.maven.org/maven2/org/mongodb/mongodb-jdbc/2.0.3/
事实证明连不上(不是报错少包就是驱动不对),原因不明,期间也尝试了其它偏门的方法,比如下面这个哈哈笑死,这个方法是可以连接的,就是其他的命令有点问题,没有解决掉。
经过我的不断实验找到了可以成功连接的驱动,下载地址:https://dbschema.com/jdbc-driver/mongodb.html#Download,点击下载一个zip压缩包,里面有很多包,至少需要用到里面的四个包:mongojdbc4.8.2.jar,mongodb-driver-core-4.10.2.jar,mongodb-driver-sync-4.10.2.jar 和 bson-4.10.2.jar 就可以连接了。
好了,最正宗的连接方法就是用datagrip自己下载的,我下载的是目前最新的版本 mongo-jdbc-standalone-1.18.jar 。

1.4 安装mongoDB服务

(很长时间没有用mongodb,这次连接就有问题了)安装好后,以后每次用到mongoDB数据库都要去cmd输入启动命令,而且cmd窗口不可以关闭,关掉的话服务就断掉。所以要安装服务,实现开机自启动。先去配置个环境变量,去path目录下添加 D:\MongoDB\bin这条,开启数据库的话,是用这条命令:mongod --dbpath D:\MongoDB\data,当然是在配置好环境变量的前提下。
打开cmd的管理员模式,输入:

mongod --dbpath "D:\MongoDB\data" --logpath "D:\MongoDB\log\mongod.log" --install --serviceName "MongoDB"

注意路径一定要加双引号,不加双引号的话会找不到路径。然后dbpath和logpath都必须要写,要不然会报错,还有一定必须是管理员模式,要不然创建不了服务
配置好后,以后就可以通过net start MongoDBnet stop MongoDB来控制MongoDB的启动了。
也可以用Win+R键,输入services.msc来查看服务是否启动,也可以手动控制。

二、基本使用

2.1 常用命令

// 查看当前所有数据库
show dbs
// 创建/使用数据库
use cmyy
// 删除数据库
db.dropDatabase()
// 查看当前操作的数据库
db

// 创建集合
db.createCollection("users")
// 查看集合
show collections
// 删除集合
db.users.drop()

// 插入一个或多个都可以
db.users.insert([{name:"小7",age:20},{name:"小8",age:20}])
// 插入一个文档
db.users.insertOne({name:"kkk",age:80})
// 插入多个文档
db.users.insertMany([{name:"小四",age:10},{name:"小wu",age:20}])

// 更新文档,只更新第一条
db.users.update({name:'kkk'},{$set:{'age':'80'}})
// 主键存在就更新,不存在是否插入, 是否更新所有记录
db.users.update({name:'999'},{$set:{'age':10}},false,false)

// 删除文档,只删除匹配文档的第一个
db.users.remove({name:'kkk'},false)
// 删除所有文档
db.users.remove({})

// 非结构化的方式来显示所有文档
db.users.find()
// pretty() 方法以格式化的方式来显示所有文档
db.users.find({$or:[{age:20},{name:"小7"}]}).pretty()
posted @ 2023-10-18 09:46  KongLong_cm  阅读(167)  评论(0编辑  收藏  举报