网站首页 > 基础教程 正文
首先讲解较好的几个文档:
简书:https://www.jianshu.com/p/6df82d3f5c8a
菜鸟教程:http://www.runoob.com/mongodb/mongodb-replication.html
mangoDb一般是用类似于json的格式存储并将数据存储为一个文档,数据结构由键值(key:value)组成
mangoDB与数据库的一些对比如下:
一个mangoDB可以建立多个数据库,默认的数据库名称为db,该数据库存储在data目录中。
一些命令:
show dbs:显示数据库列表
db:显示当前的数据库对象和集合
use local:连接到指定的local数据库
一些命名规范:
数据库名称:
- 不能是空字符串("")。
- 不得含有' '(空格)、.、$、/、\和\0 (空字符)。
- 应全部小写。
- 最多64字节。
需要注意的是:
- 文档中的键/值对是有序的。
- 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
- MongoDB区分类型和大小写。
- MongoDB的文档不能有重复的键。
- 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。
文档键命名规范:
- 键不能含有\0 (空字符)。这个字符用来表示键的结尾。
- .和$有特别的意义,只有在特定环境下才能使用。
- 以下划线"_"开头的键是保留的(不是严格要求的)。
集合
集合就是 MongoDB 文档组,类似于 RDBMS (关系数据库管理系统:Relational Database Management System)中的表格。
集合存在于数据库中,集合没有固定的结构,这意味着你在对集合可以插入不同格式和类型的数据,但通常情况下我们插入集合的数据都会有一定的关联性。
- 合法的集合名
- 集合名不能是空字符串""。
- 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。
- 集合名不能以"system."开头,这是为系统集合保留的前缀。
- 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。
- 创建数据库:use DATABASE_NAME
- 删除数据库:a)切换到指定的数据库 b)db.dropDataBase()
- 删除集合:a.首先切换到指定数据库 b,db.集合名.drop
- 查找已有集合:show collections
- 插入:db.collection.insert
- 更新:db.collection.update/save(query,set,upsert,muilt)
- 查询:db.collection.find()
- 删除:db.collection.remove()
- 查询包含“教”字的文档:db.collection.find({"title":/教/})
- 查询以“教”开头的文档:db.collection.find({"title":/^教/})
- 查询以教结尾的文档:db.collection.find({"title":/教$/})
- db.collection.find({},{"title":1,_id:0}).limit(2):第一个{}相当于where条件,如果什么都不写的话就默认实现是显示所有,第二个{}中指定哪些列显示,哪些列不显示,1为显示,0为不显示
- 排序sort(1/0)1为升序,0为降序
- 创建索引 db.collection.createIndex(keys,option),keys表示要创建的索引字段,1表示升序创建索引,-1表示降序创建索引,createIndex()接收可选参数,可选参数列表如下:
1、查看集合索引
db.col.getIndexes()
2、查看集合索引大小
db.col.totalIndexSize()
3、删除集合所有索引
db.col.dropIndexes()
4、删除集合指定索引
db.col.dropIndex("索引名称")
猜你喜欢
- 2024-11-17 Linux系统下运行c++程序(linux进行c++编程)
- 2024-11-17 还在重复劳动?不如用Python自动生成Excel以邮件发送
- 2024-11-17 2021年后端研发工程师面试题汇总(PHP/JAVA/GO)
- 2024-11-17 关于均数和标准差相关计算的梳理(均数和标准差的关系是什么)
- 2024-11-17 JAVA小白必学的代码编程技巧(java初学代码)
- 2024-11-17 热火!350道Java面试真题,涨薪6K的跳槽秘籍!(2020版)
- 2024-11-17 金九银十 1000道互联网工程师面试题 涨薪9K的跳槽秘籍
- 2024-11-17 Python学习必备的三个网站(学python最好的网站)
- 2024-11-17 一个 3 年 Java 程序员 5 家大厂的面试总结(已拿Offer)
- 2024-11-17 牛啊!长这么大还是头一次见24W字的SpringBoot从入门到实战文档
- 最近发表
- 标签列表
-
- jsp (69)
- gitpush (78)
- gitreset (66)
- python字典 (67)
- dockercp (63)
- gitclone命令 (63)
- dockersave (62)
- linux命令大全 (65)
- pythonif (86)
- location.href (69)
- dockerexec (65)
- tail-f (79)
- queryselectorall (63)
- location.search (79)
- bootstrap教程 (74)
- deletesql (62)
- linuxgzip (68)
- 字符串连接 (73)
- html标签 (69)
- c++初始化列表 (64)
- mysqlinnodbmyisam区别 (63)
- arraylistadd (66)
- mysqldatesub函数 (63)
- window10java环境变量设置 (66)
- c++虚函数和纯虚函数的区别 (66)