数据库
首页 > 数据库> > Mongodb(二)基本概念和操作

Mongodb(二)基本概念和操作

作者:互联网

(一)、mongodb组成
数据库、集合、文档、域、索引 SQL术语 MongoDB术语 解释/说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 表连接,MongoDB不支持 primary key primary key 主键,MongoDB自动将_id字段设置为主键

1、数据库。mongodb可以建立多个数据库。MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中。 <1>、常用的命令 show dbs" 命令可以显示所有数据的列表。 执行 "db" 命令可以显示当前数据库对象或集合。 use yz 创建数据库。 db.yz.insert({"name","liqingbiao"}) 向刚创建的数据库插入数据 db.dropDatabase(); 删除数据库

2、系统保留数据库
admin: 从权限的角度来看,这是"root"数据库。要是将一个用户添加到这个数据库,这个用户自动继承所有数据库的权限。一些特定的服务器端命令也只能从这个数据库运行,比如列出所有的数据库或者关闭服务器。 local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合 config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息。

3、文档。文档是一组键值对(key-value)。mongodb的文档不需要设置相同的字段,并且相同字段不需要相同的数据类型,这和关系型数据库有很大的区别。 1、文档中的键/值对是有序的。 2、文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。 3、MongoDB区分类型和大小写。 4、MongoDB的文档不能有重复的键。 5、文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。

文档键命名规范: 键不能含有\0 (空字符)。这个字符用来表示键的结尾。 .和$有特别的意义,只有在特定环境下才能使用。 以下划线"_"开头的键是保留的(不是严格要求的)

5、集合。集合就是mongodb文档组,类似于RDBMAS中的表格。 集合存在于数据库中,集合没有固定的结构,意味着你可以插入不同格式和类型的数据库,插入集合的数据都会有一定的关联性。 合法的集合名 集合名不能是空字符串""。 集合名不能含有\0字符(空字符),这个字符表示集合名的结尾。 集合名不能以"system."开头,这是为系统集合保留的前缀。 用户创建的集合名字不能含有保留字符。有些驱动程序的确支持在集合名里面包含,这是因为某些系统生成的集合中包含该字符。除非你要访问这种系统创建的集合,否则千万不要在名字里出现$。 

5、相关的命令

5.1、########创建数据库###################

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.2、###################创建和删除集合(表)##################

db.createCollection("user") ########在当前数据库yz下创建user集合 { "ok" : 1 } show tables; ###########显示所有集合 user yz db.name.drop() ######删除集合或表name true show tables; lqb mycol1 user

5.3、##############文档操作################### 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() # 集合中数据压缩存储的大小

标签:name,Mongodb,数据库,db,yz,文档,集合,操作,基本概念
来源: https://blog.51cto.com/liqingbiao/2408641