进入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" ```匹配到集合的字段需要从指定的文档中取用
}
}])
``