MongoDb 学习笔记(二) --- MongoDb 数据库创建删除、表(集合 ) 创建删除、数据增删改查
目录
一、 数据库使用
二、 创建数据库
三、 插入(增加)数据
四、 查找数据
五、 修改数据
六、 删除数据
一、 数据库使用
开启 mongodb 服务:要管理数据库,必须先开启服务,开启服务使用
1 | mongod --dbpath c:\mongodb |
管理 mongodb 数据库:(一定要在新的 cmd 中输入)
1 | mongo |
清屏:
1 | cls |
查看所有数据库列表
1 | show dbs |
二、 创建数据库
使用数据库、创建数据库
1 | use student |
如果真的想把这个数据库创建成功,那么必须插入一个数据。
数据库中不能直接插入数据,只能往集合(collections)中插入数据。不需要专门创建集合,只
需要写点语法插入数据就会创建集合:
插入一条数据
1 | db.student.insert({“name”:”xiaoming”}); |
db.student 系统发现 student 是一个陌生的集合名字,所以就自动创建了集合。
显示当前的数据集合(mysql 中叫表)
1 | show collections |
删除数据库,删除当前所在的数据库
1 | db.dropDatabase(); |
删除集合,删除指定的集合 删除表
删除集合
1 2 | db.COLLECTION_NAME.drop() db.user.drop() |
三、 、 插入 (增加) 数据
插入数据,随着数据的插入,数据库创建成功了,集合也创建成功了。
1 | db. 表名.insert({ "name" : "zhangsan" }); student 集合名称(表) |
四、 、 查找数据
1 、查询所有记录
1 | db.userInfo.find(); |
相当于:select* from userInfo;
2 、查询去掉后的当前聚集集合中的某列的重复数据
1 | db.userInfo.distinct( "name" ); |
会过滤掉 name 中的相同数据
相当于:select distict name from userInfo;
3 、查询 age = 22 的记录
1 | db.userInfo.find({ "age" : 22}); |
相当于: select * from userInfo where age = 22;
4 、查询 age > 22 的记录
db.userInfo.find({age: {$gt: 22}});
相当于:select * from userInfo where age >22;
5 、查询 age < 22 的记录
1 | db.userInfo.find({age: {$lt: 22}}); |
相当于:select * from userInfo where age <22;
6 、查询 age >= 25 的记录
1 | db.userInfo.find({age: {$gte: 25}}); |
相当于:select * from userInfo where age >= 25;
7 、查询 age <= 25 的记录
1 | db.userInfo.find({age: {$lte: 25}}); |
8 、查询 age >= 23 并且 age <= 26 注意书写格式
1 | db.userInfo.find({age: {$gte: 23, $lte: 26}}); |
9 、查询 name 中包含 mongo 的数据 模糊查询用于搜索
1 | db.userInfo.find({name: /mongo/}); |
//相当于%%
select * from userInfo where name like ‘%mongo%’;
10 、查询 name 中以 mongo 开头的
1 2 | db.userInfo.find({name: /^mongo/}); select * from userInfo where name like ‘mongo%’; |
11 、查询指定列 name 、age 数据
1 | db.userInfo.find({}, {name: 1, age: 1}); |
相当于:select name, age from userInfo;
当然 name 也可以用 true 或 false,当用 ture 的情况下河 name:1 效果一样,如果用 false 就
是排除 name,显示 name 以外的列信息。
12 、查询指定列 name 、age 数据, age > 25
1 | db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1}); |
相当于:select name, age from userInfo where age >25;
13 、按照年龄排序 1 升序 -1 降序
1 2 | 升序:db.userInfo.find().sort({age: 1}); 降序:db.userInfo.find().sort({age: -1}); |
14 、查询 name = zhangsan, age = 22 的数据
1 | db.userInfo.find({name: 'zhangsan' , age: 22}); |
相当于:select * from userInfo where name = ‘zhangsan’ and age = ‘22’;
15 、查询前 5 条数据
1 | db.userInfo.find().limit(5); |
相当于:selecttop 5 * from userInfo;
16 、查询 10 条以后的数据
1 | db.userInfo.find().skip(10); |
相当于:select * from userInfo where id not in (
selecttop 10 * from userInfo
);
五、 、 删除数据
1 2 3 4 5 | db.collectionsNames.remove( { "borough" : "Manhattan" } ) db.users.remove({age: 132}); By default , the remove() method removes all documents that match the remove condition. Use the justOne option to limit the remove operation to only one of the matching documents. db.restaurants.remove( { "borough" : "Queens" }, { justOne: true } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?