(一)、mongodb组成
数据库、集合、文档、域、索引 SQL术语 MongoDB术语 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表链接,MongoDB不支持 primary key primary key 主键,MongoDB自动将_id字段设置为主键sql
一、数据库。mongodb能够创建多个数据库。MongoDB的单个实例能够容纳多个独立的数据库,每个都有本身的集合和权限,不一样的数据库也放置在不一样的文件中。 <1>、经常使用的命令 show dbs" 命令能够显示全部数据的列表。 执行 "db" 命令能够显示当前数据库对象或集合。 use yz 建立数据库。 db.yz.insert({"name","liqingbiao"}) 向刚建立的数据库插入数据 db.dropDatabase(); 删除数据库mongodb
二、系统保留数据库
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承全部数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,好比列出全部的数据库或者关闭服务器。 local: 这个数据永远不会被复制,能够用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。数据库
三、文档。文档是一组键值对(key-value)。mongodb的文档不须要设置相同的字段,而且相同字段不须要相同的数据类型,这和关系型数据库有很大的区别。 一、文档中的键/值对是有序的。 二、文档中的值不只能够是在双引号里面的字符串,还能够是其余几种数据类型(甚至能够是整个嵌入的文档)。 三、MongoDB区分类型和大小写。 四、MongoDB的文档不能有重复的键。 五、文档的键是字符串。除了少数例外状况,键可使用任意UTF-8字符。服务器
文档键命名规范: 键不能含有\0 (空字符)。这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。 如下划线"_"开头的键是保留的(不是严格要求的)ide
五、集合。集合就是mongodb文档组,相似于RDBMAS中的表格。 集合存在于数据库中,集合没有固定的结构,意味着你能够插入不一样格式和类型的数据库,插入集合的数据都会有必定的关联性。 合法的集合名 集合名不能是空字符串""。 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。 集合名不能以"system."开头,这是为系统集合保留的前缀。 用户建立的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是由于某些系统生成的集合中包含该字符。除非你要访问这种系统建立的集合,不然千万不要在名字里出现$。 url
五、相关的命令3d
5.一、########建立数据库###################对象
use yz ####建立或切换数据库,刚建立的数据库不在数据库列表中,须要向数据库里插入一些数据 switched to db yz show dbs #####显示当前的数据库 admin 0.000GB config 0.000GB local 0.000GB db.yz.insert({"name":"yz"}) ####向数据库插入一些数据 WriteResult({ "nInserted" : 1 }) show dbs; admin 0.000GB config 0.000GB local 0.000GB yz 0.000GB db ###############3查看当前的数据库 yz db.dropDatabase() ######删除当前的数据库 { "dropped" : "yz", "ok" : 1 }继承
5.二、###################建立和删除集合(表)##################教程
db.createCollection("user") ########在当前数据库yz下建立user集合 { "ok" : 1 } show tables; ###########显示全部集合 user yz db.name.drop() ######删除集合或表name true show tables; lqb mycol1 user
5.三、##############文档操做################### MongoDB 使用 insert() 或 save() 方法向集合中插入文档,语法以下: db.COLLECTION_NAME.insert(document)
db.name.insert({"name":"liqingbiao"}) #########向集合name插入数据 WriteResult({ "nInserted" : 1 }) db.name.find() ##############查看name集合 { "_id" : ObjectId("5cee3d291d0f99f83952637e"), "title" : "MongoDB 教程", "description" : "MongoDB 是一个 Nosql 数据库", "by" : "菜鸟教程", "url" : "http://www.runoob.com", "tags" : [ "mongodb", "database", "NoSQL" ], "likes" : 100 } { "_id" : ObjectId("5cee3d991d0f99f83952637f"), "name" : "liqingbiao" }
db.collection.update( ####更新文档 , , { upsert: , multi: , writeConcern: } )
db.name.remove({"title" : "MongoDB 教程"}) ####删除 WriteResult({ "nRemoved" : 1 }) db.name.find() { "_id" : ObjectId("5cee3d991d0f99f83952637f"), "name" : "liqingbiao" }
db.name.remove({}) ####删除全部的 WriteResult({ "nRemoved" : 1 }) db.name.find()
######
db.getMongo() #######查看当前数据库的链接地址 db.stats() ####查看当前数据库状态 db.version() #####查看当前数据库版本 db.createCollection('phone') ###建立集合phone show collections或者showtables ####查看集合 db.log.stats() # 查看数据状态 db.log.dataSize() # 集合中数据的原始大小 db.log.totalIndexSize() # 集合中索引数据的原始大小 db.log.totalSize() # 集合中索引+数据压缩存储以后的大小 db.log.storageSize() # 集合中数据压缩存储的大小