mongodb默认数据库和集合、mongodb的基本命令

一、mongodb默认数据库和集合

mongodb默认的数据库有:admin,config,local。

1、admin(管理员的数据库)

管理员命令只能在此数据库执行。此数据库中的用户为超级用户,可对所有数据库进行操作,并能执行管理员命令。

(1)system.users集合:用户身份验证信息的集合

2、config(分片集群配置的数据库)

(1)changelog集合:分片集群变更记录信息的集合

每个文档包含以下字段:

  • _id:操作的唯一标识符。
  • clientAddr:触发操作的客户端地址。可能为""
  • details:操作详情。
  • ns:集合的命名空间。
  • server:操作发生的服务器地址。
  • time:时间。
  • what:操作。拆分为split,迁移为moveChunk.to。

(2)chunks集合:分片集群块信息的集合

每个文档包含以下字段:

  • _id:块的唯一标识符。
  • lastmod:块的版本。Timstamp类型,如:Timestamp(MAJOR, MINOR)。MAJOR会在块被迁移至新的分片时改变,MINOR会在块被拆分时改变。
  • lastmodEpoch:块的版本。ObjectId类型。
  • max:块范围的最大值(不含)。
  • min:块范围的最小值(含)。
  • ns:块所属集合的命名空间。
  • shard:块所属的分片。

(3)collections集合:分片集合信息的集合

每个文档包含以下字段:

  • _id:集合的命名空。不包括非分片集合。
  • distributionMode:
  • dropped:
  • lastmod:
  • lastmodEpoch:
  • key:片键。
  • unique:片键是否是唯一索引。只当为true才有此字段。
  • uuid:

(4)databases集合:数据库信息的集合

每个文档包含以下字段:

  • _id:数据库名。不管数据库有没有被分片。
  • lastMod:
  • partitioned:是否被分片。
  • primary:主分片。数据库的所有新集合默认创建在主分片上。
  • version:

(5)locks集合:分片集群锁信息的集合

每个文档包含以下字段:

  • _id:锁名称。balancer为均衡器。
  • state:状态。非活跃为0,等待锁为1,均衡中为2。
  • who:代表哪一个mongos。

(6)settings集合:设置信息的集合

每个文档包含以下字段:

  • _id:设置名称。均衡器为balancer。块大小为chunksize。
  • enabled:若_id为balancer,则为是否启动均衡器。
  • activeWindow:均衡器的时间窗口。
    • start:开始时间。
    • stop:结束时间。
  • value:若_id为chunksize,则为块大小,单位为MB。

(7)shards集合:分片信息的集合

每个文档包含以下字段:

  • _id:分片名称。也为副本集名称。
  • host:主机地址。格式为SHARD_NAME/HOST_PORT[,...]。
  • state:状态。
  • tags:分片标签数组。

(8)tags集合:分片标签信息的集合

每个文档包含以下字段:

  • _id:标签ID。
  • max:片键的最大值(不含)。
  • min:片键的最小值(含)。
  • ns:对应集合的命名空间。
  • tag:标签名。

3、local(本地的数据库)

此数据库不会被复制。此数据库中的用户为超级用户,可对所有数据库进行操作,并能执行管理员命令。

(1)me集合:服务器自身信息集合

(2)oplog.rs集合:oplog操作日志的集合,是一个固定集合

(3)slaves集合:以当前节点作为同步源的节点信息的集合,包括影同步的节点信息

(4)startup_log集合:启动日志的集合

(5)system.replset集合:副本集配置的集合

包含一个文档,其字段同rs.config的返回。副本集中所有节点的此文档都是相同的,不要自行修改此文档。

4、当前数据库

所有数据库都可以拥有以下集合:

(1)fs.chunks集合:GridFS文件块的集合

每个文档包含以下字段:

  • _id:块ID。
  • data:文件数据。
  • files_id:文件ID。
  • n:块在文件中的相对位置。

(2)fs.files集合:GridFS文件元信息的集合

每个文档包含以下字段:

  • _id:文件ID。
  • chunkSize:块字节大小。默认是256KB。
  • filename:文件名。
  • length:文件字节大小。
  • metadata
  • uploadDate:上传时间。

(3)system.profile集合:系统分析器记录信息的集合,是一个固定集合

每个文档包含以下字段:

  • client:客户端地址。
  • ns:集合的命名空间。
  • op:操作类型。

二、mongodb的基本命令

show dbs         #查看数据库
show collections   #显示当前数据库中的集合(类似关系数据库中的表) 
show users         #显示用户
use DB2(库名)   #选择数据库或新建一个数据库
#空数据库不在show dbs中显示!!
db.getName()     #获取当前数据库的名称
show tables      #查看当前数据库的表
db.help()        #显示数据库操作命令,里面有很多的命令 
db.foo.help()
#显示集合操作命令,同样有很多的命令,foo指的是当前数据库下,一个叫foo的集合(表),并非真正意义上的命令 
db.person.insert()   #向person表插入数据
db.person.find()     #查询数据表person的数据
例:db.person.find({"sex":"女"})  #查询person表中sex字段为女的数据
db.person.update()   #更新数据表person的数据
db.person.remove()   #删除数据表person的数据
例:db.person.remove({"name":/m/})  #删除数据表person中name字段包含a的数据
db.person.drop()     #删除数据表person
db.dropDatabases()   #删除数据库



$gt       大于      >
$lt       小于      <
$gte      大于等于  >=
$lte      小于等于  <=
$ne       不等于    noe equals
$in       存在于
$nin      不存在于
$exists   是否存在


例:
db.collection.find({age:{$gt:18}})    #查看collection表中年龄大于不包含18岁的数据
db.collection.find({field:{$in:array}})   
db.collection.find({field:{$nin:array}})  
db.collection.find({title:{$exists:true}})   #如果记录中有包含title属性的全部返回
db.collection.find({title:{$exists:false}})
#如果记录中有包含title属性的全部不返回,不包含title属性的全部返回

猜你喜欢

转载自blog.csdn.net/hjxloveqsx/article/details/129141667
今日推荐