mongDB学习笔记-常用命令

时间:2025-01-18 07:02:06

进入mongosh: docker exec -it mongoDB mongosh,出行附件所示的内容,表示已成功进入mongsh界面。
在这里插入图片描述
查看当前版本:db.version()

查看当前服务下的mongdb数据库:show dbs;

创建数据库:在 MongoDB Shell 中,使用 use <database_name> 命令创建一个新的数据库。如果数据库不存在,该命令会在第一次向数据库中插入数据时自动创建它。例如,输入 use myNewDatabase 即可创建一个名为 “myNewDatabase” 的新数据库。

使用指定的mongo数据库:use xx;出现附件所示的内容表示已成功指定数据库的使用。
在这里插入图片描述
删除数据库:先指定数据库,然后执行命令:db.dropDatabase(“test1”) 即可完成删除

查看当前库下的集合(对应mysql中的表):show collections;
在这里插入图片描述

创建集合:db.createCollection(“dd”)

删除集合:db.xx.drop(“dd”) 其中xx为数据库名称,dd为要删除的集合名称

插入单条数据:db.car_info.insert({“number”:“川G123456”,“type”:“小轿车”,“driver_id”:“002”})

在这里插入图片描述
插入多条数据:db.car_info.insertMany([{“number”:“川G123456”,“type”:“小轿车”,“driver_id”:“002”},{“number”:“川G00000”,“type”:“小轿车”,“driver_id”:“003”}]) 需要注意的是,插入多条数据时,被插入内容是存放于一个数组中。

在这里插入图片描述
在插入数据时,如果对应的collection不存在,那么在执行插入命令时,会自动创建collection;如果插入的键在对应的collection中不存在,也会在collection中自动创建该键(字段)。

修改指定数据:
在这里插入图片描述
在这里插入图片描述
批量修改数据:db.car_info.updateMany({“type”:“小轿车”},{$set:{“type”:“小型乘用车”}})

删除数据:db.car_info.deleteOne({“number”:“川G123456”})

批量删除数据:db.car_info.deleteMany({“number”:“川G00000”})
在这里插入图片描述

查询数据:
使用主键查询: db.car_info.find({“_id”: ObjectId(“67885fd4cd769cb483e9496b”)}) 因为主键是ObjectId类型,所以查询时需要使用ObjectId。

使用非ObjectId类型的字段查询:db.car_info.find({“type”:“小轿车”})
在这里插入图片描述
只返回第一个查询结果:db.car_info.findOne({“type”:“小轿车”})

查询结果限制返回数量:db.car_info.find({“type”:“小轿车”}).limit(2)
在这里插入图片描述

聚合查询:聚合查询相当于mysql的连表查询,该查询过程分为三个阶段。$lookup 阶段、
u n w i n d 阶段、 unwind 阶段、 unwind阶段、project 阶段。
以下面命令为例:


```javascript
db.car_info.aggregate([{            ```
	$lookup: {                      ```	$lookup:将另一个集合中的文档合并到当前文档中
		from: "driver_info",        ```想要链接的集合名称
		localField: "driver_id",    ```当前集合的关联外部集合的标识
		foreignField: "code",       ```外部集合的关联表示
		as: "test_info"             ```保存输出结果的文档(存放的是匹配到的另一集合的字段)
	}
},     
{
	$unwind: "$test_info"           ```$unwind: 将数组拆分成相互独立的文档
},
{
	$project: {                     ```$project:选择和重命名输出文档中的字段
		number: 1,                  ```原本集合中的字段可以通过赋值1进行保留
		type: 1,
		name: "$test_info.name"     ```匹配到集合的字段需要从指定的文档中取用
	}
}])

``