前言
大家好,我是WangHappy,一名主业前端,副业全栈的程序员,在这里我会分享关于前端进阶全栈的常用技术 和 基本入门操作。 如果我的文章能让您有所收获,欢迎一键三连(评论,点赞,关注)。
在前端转型全栈的过程中,我们多数情况下使用 node.js 来开发服务端,而 node.js 里操作MongoDB数据库最常用的库是 mongoose,所以 mongosh 在实际开发中的使用频率并不是很高,多用于测试或查看数据库状态等场景。
本章只讲述 Mongosh 一些常用命令,例如:数据库基本的增、删、改、查(CRUD)和状态信息获取等操作,能够满足我们日常开发使用即可。
1.连接数据库
1.1 本地连接数据库
arduino
mongosh --dbpath "path/data"
1.2 远程连接数据库
xml
mongosh "mongodb://<hostname>:<port>"
举例:mongosh "mongodb://192.168.0.0:27017"
1.3 远程连接数据库并使用用户名密码验证
xml
mongosh "mongodb://<username>:<password>@<hostname>:<port>"
举例:mongosh "mongodb://admin:admin123@192.168.0.0:27017"
2.查看数据库状态
2.1 查看当前使用的数据库
db
- 切换数据库
perl
use <database_name>
举例:use admin
如果切换的数据库名称当前不存在,则会在 insert 插入数据时自动创建
注意:是插入数据时创建,而不是使用
use切换时创建。
2.2 列出MongoDB实例下所有的数据库
show databases 可以查看目前所有的数据库,也可以使用简写 show dbs
sql
show databases
2.3 列出当前数据库下所有集合
理论上每个数据库下都可以包含一个或多个集合,它有点类似于我们传统关系型数据库中的 表 的概念。
sql
show collections
2.4 退出 mongosh
使用 exit 可以直接退出mongosh数据库连接,也可以使用 ctrl + c 快捷键来退出
bash
exit
3.数据库的增删改查
3.1 插入数据
使用 insertOne 插入一条数据,使用 insertMany 插入多条数据,代码如下:
php
// 插入一条数据
db.user.insertOne({ name: "Mike", age: 30 })
// 插入多条数据
db.user.insertMany([{ name: "Marry", age: 25 }, { name: "Kerry", age: 35 }])
3.2 删除数据
使用 deleteOne 删除单个文档,使用 deleteMany 删除多个文档
php
// 删除单个文档
db.user.deleteOne({ name: "Alice" })
// 删除年龄30岁以下的数据
db.user.deleteMany({ age: { $lt: 30 } })
3.3 更新数据
使用 updateOne 更新单个文档,使用 updateMany 更新多个文档
php
// 更新单个文档
db.user.updateOne({ name: "Alice" }, { $set: { age: 31 } })
// 更新多个文档
db.user.updateMany({ age: { $lt: 30 } }, { $set: { status: "young" } })
3.4 查询数据
使用 find 查询集合中所有数据
lua
db.user.find()
查询某个条件的文档
php
// 查询30岁以下的数据
db.user.find({ age: { $gte: 30 } })
3.5 创建索引
为某个字段创建索引
css
db.user.createIndex({ name: 1 })
3.6 查看当前集合下的所有索引
scss
db.users.getIndexes()
执行上述代码通常会返回两个索引,_id 和 name
_id 索引:是自动创建,用于确保每条数据的唯一性。
name 索引:自定义索引,方便对指定字段的查询操作,例如 name: 1 表示按升序排列,如果改为 name: -1 表示降序。
4.其它命令
| 命令 | 作用 |
|---|---|
| version() | 查看当前使用 mongosh 的版本 |
| help | 查看 mongosh 的帮助信息, 查看某个命令的帮助信息,<name>.help(), 例如:db.help() |
写在最后
本章整理了 mongosh 中一些常用命令,方便大家在日常使用中参考。虽然 mongosh 功能强大,但像 聚合查询 等更贴近业务场景的功能,我通常会通过 mongoose 来实现。接下来,我将继续编写关于 node.js + mongoose 的使用教程,并与大家分享更多实践经验。