MongoDB学习笔记(1)
1、基本概念
数据逻辑层次关系:文档=>集合=>数据库。
2、基本指令
1)创建数据库
如果数据库不存在,则创建数据库,否则切换到指定数据库。
1 | use DATABASE_NAME |
注:
1、刚刚创建的数据库使用 show dbs 显示不出来,需要插入一些数据才能显示;
2、MongoDB 中默认的数据库为 test,如果你没有创建新的数据库,集合将存放在test 数据库中。
2)查看当前的数据库名
1 |
3)删除数据库
删除当前数据库,默认为 test,可以使用 db 命令查看当前数据库名。
1 | db.dropDatabase() |
4)创建集合
1 | db.createCollection(name, options) |
参数说明:
name: 要创建的集合名称
options: 可选参数, 指定有关内存大小及索引的选项
5)删除集合
1 | db.集合名.drop() |
如果成功删除选定集合,则 drop() 方法返回true,否则返回 false。
6)插入文档
1 2 | db.collection.insertOne():向指定集合中插入一条文档数据 db.collection.insertMany():向指定集合中插入多条文档数据 |
7)更新文档
1、update()方法,用于更新已存在的文档。语法格式如下:
1 2 3 4 5 6 7 8 | db.collectio_name.update( <query>, <update>, { upsert: <boolean>, multi: <boolean>, writeConcern: <document> }) |
参数说明:
query : update 的查询条件,类似 sql update 查询内 where 后面的。
update : update 的对象和一些更新的操作符(如, ,,inc…)等,也可以理解为 sql update 查询内 set 后面的
upsert : 可选,这个参数的意思是,如果不存在 update 的记录,是否插入objNew,true 为插入,默认是false,不插入。
multi : 可选,mongodb 默认是 false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。
2、save() 方法,通过传入的文档来替换已有文档,_id 主键存在就更新,不存在就插入。语法格式如下:
1 2 3 4 5 | db.collection_name.save( <document>, { writeConcern: <document> }) |
参数说明:
-
- document : 文档数据。
- writeConcern :可选,抛出异常的级别。
8)
查询文档
1 | db.collection_name.find(query, projection) |
参数说明:
-
- query :可选,使用查询操作符指定查询条件
- projection :可选,使用投影操作符指定返回键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
如果你需要以易读的方式来读取数据,可以使用 pretty() 方法,语法格式如下:
1 | db.col.find().pretty() |
pretty()方法以格式化的方式来显示所有文档。
9)删除文档
MongoDB remove()函数是用来移除集合中的数据。在执行 remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯。语法如下:
1 2 3 4 | db.collection_name.remove( <query>, <justOne>) } |
参数说明:
-
- query :(可选)删除的文档的条件。
- justOne : (可选)如果设为 true 或 1,则只删除一个文档,如果不设置该参数,或使用默认值
false,则删除所有匹配条件的文档。
参考:(30条消息) 超级详细MongoDB 的基本操作(理论+举例)_11.28.的博客-CSDN博客_mongodb怎么使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码