在上一篇文章【MongoDB 快速安装与配置指南】中,如何在本地计算机或服务器上安装和配置MongoDB,以便您可以开始探索这项强大的技术。今天,我们将继续学习MongoDB 核心CRUD操作:数据库、集合与文档的语法。
数据库操作
MongoDB 中默认的数据库如下。
一个 MongoDB 中可以创建多个数据库,每一个数据库都有自己的集合和权限。
MongoDB安装完成后内置了几个特殊的数据库。
- admin : admin 数据库主要是保存 root 用户和角色。例如,system.users 表存储用户,system.roles 表存储角色。一般不建议用户直接操作这个数据库。将一个用户添加到这个数据库,且使它拥有 admin 库上的名为 dbAdminAnyDatabase 的角色权限,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如关闭服务器。
- local : local 数据库是不会被复制到其他分片的,因此可以用来存储本地单台服务器的任意 collection。一般不建议用户直接使用 local 库存储任何数据,也不建议进行 CRUD 操作,因为数据无法被正常备份与恢复。
- config : 当 MongoDB 使用分片设置时,config 数据库可用来保存分片的相关信息。
- test : 默认创建的测试库,连接 mongod 服务时,如果不指定连接的具体数据库,默认就会连接到 test 数据库。
数据库名可以是满足以下条件的任意 UTF-8 字符串:
- 不能是空字符串
""
。 - 不得含有
' '
(空格)、.
、$
、/
、“和(空字符)。
- 应全部小写。
- 最多 64 字节。
数据库名最终会变成文件系统里的文件,这也就是有如此多限制的原因。
1.【创建/切换】
使用use命令来切换/创建数据库,会发现创建的数据库并不在数据库的列表中, 要显示它,需要向数据库插入一些数据
use 数据库名称
例如:创建学生数据库:use student;
2.【查看数据库】
使用show dbs来查看数据库
show dbs
或
show databases
3.【显示当前数据库】
使用db命令来显示/查看当前数据库,效果等同于 db.getName()
db
4.【删除数据库】
这将删除当前所选数据库。 如果没有选择任何数据库,那么它将删除默认的’test‘数据库
db.dropDatabase()
5.【查看数据库版本】
db.version()
集合操作
1.【创建集合】
db.createCollection(集合名称, 选项) ;
集合不需要事先创建,当第一个文档插入或者第一个索引创建时,如果该集合不存在,则会创建一个新的集合。
集合名可以是满足下列条件的任意 UTF-8 字符串:
- 集合名不能是空字符串
""
。 - 集合名不能含有
(空字符),这个字符表示集合名的结尾。
- 集合名不能以”system.”开头,这是为系统集合保留的前缀。例如
system.users
这个集合保存着数据库的用户信息,system.namespaces
集合保存着所有数据库集合的信息。 - 集合名必须以下划线或者字母符号开始,并且不能包含
$
。
参数说明:
- name: 要创建的集合名称
- options: 可选参数, 指定有关内存大小及索引的选项
例如:
db.createCollection("role",{capped:true,autoIndexId:true,size:6100000});
db.createCollection("student",{capped:true,autoIndexId:true,size:6100000});
db.createCollection("AI2301");
db.createCollection("AI2302");
db.createCollection("AI2303");
2.【删除集合】
db.集合名称.drop()
例如:删除集合:db.AI2301.drop();
3.【查看集合】
db.getCollectionNames():获取当前 db 的所有集合,以数组形式显示
show collections:获取当前 db 的所有集合,以列表(换行)形式显示
show collections
4.【集合重命名】
db.原集合名称.renameCollection('新集合名称');
例如:
db.AI2302.renameCollection('人工智能2302');
文档操作
1.【文档创建】
向集合中插入新的文档。常用的命令是 insert() 或 insertOne(), insertMany(),save()。
例如:
/单个文档操作/
db.AI2301.insert({
stu_name : "刘小海",
stu_no: 100001,
mobile : "1822994578",
sex: '男'
});
db.AI2301.save({
stu_name : "刘小海",
stu_no: 100001,
mobile : "1822994578",
sex: '男'
});
db.AI2301.insertOne({
stu_name : "刘小海",
stu_no: 100001,
mobile : "1822994578",
sex: '男'
});
2.【文档查询】
从集合中检索文档。常用的命令是 find() 或 findOne()。
例如:
db.AI2301.find()
3.【文档更新】
更新(Update):修改集合中已存在的文档。常用的命令是 update() 或 updateOne(), updateMany()。
db.AI2301.update({
stu_name: '刘小海'},
{
$set: {
sex: '女'
}
}
);
4.【文档删除】
删除(Delete):从集合中移除文档。常用的命令是 remove() 或 deleteOne(), deleteMany()。
db.AI2301.deleteOne({stu_name: '刘小海'});
在接下来的内容里,我们将深入探讨文档CRUD操作的具体实践,并从性能优化的角度出发,教你如何更高效地管理和操作MongoDB中的数据。无论是提升查询速度还是优化数据存储,这些知识点都将帮助你在实际项目中更好地运用MongoDB。
1、本站所有资源均从互联网上收集整理而来,仅供学习交流之用,因此不包含技术服务请大家谅解!
2、本站不提供任何实质性的付费和支付资源,所有需要积分下载的资源均为网站运营赞助费用或者线下劳务费用!
3、本站所有资源仅用于学习及研究使用,您必须在下载后的24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担!
4、本站站内提供的所有可下载资源,本站保证未做任何负面改动(不包含修复bug和完善功能等正面优化或二次开发),但本站不保证资源的准确性、安全性和完整性,用户下载后自行斟酌,我们以交流学习为目的,并不是所有的源码都100%无错或无bug!如有链接无法下载、失效或广告,请联系客服处理!
5、本站资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您的合法权益,请立即告知本站,本站将及时予与删除并致以最深的歉意!
6、如果您也有好的资源或教程,您可以投稿发布,成功分享后有站币奖励和额外收入!
7、如果您喜欢该资源,请支持官方正版资源,以得到更好的正版服务!
8、请您认真阅读上述内容,注册本站用户或下载本站资源即您同意上述内容!
原文链接:https://www.shuli.cc/?p=20735,转载请注明出处。
评论0