Fangjian

FE / 生活是一种态度

导航
 » 主页
 » 项目
 » Github
 » 关于我

mongodb基础 [mongodb]

23 Apr 2017 » mongodb

MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。

(未完成….)

目录


1 概念

2 数据库操作

3 集合(表)操作


一、概念

SQL术语/概念    MongoDB术语/概念    解释/说明
database        database            数据库
table           collection          数据库表/集合
row             document            数据记录行/文档
column          field               数据字段/域
index           index               索引
table joins                         表连接,MongoDB不支持
primary key     primary key         主键,MongoDB自动将_id字段设置为主键
  • 一个mongodb中可以建立多个数据库

  • MongoDB的默认数据库为”db”,该数据库存储在data目录中

  • MongoDB的单个实例可以容纳多个独立的数据库,每一个都有自己的集合和权限,不同的数据库也放置在不同的文件中


二、数据库操作

// 1. 显示所有存有文档的可用数据库
> show dbs 

// 2. 显示当前数据库对象或集合
> db
test

// 3. 连接到一个指定的数据库
> use local
switched to db local

> db 
local

// 4. 创建数据库
> use dcg
switched to db dcg

> show dbs
admin  0.000GB
local  0.000GB

// 我们刚创建的数据库 dcg 并不在数据库的列表中,我们需要向 dcg 数据库插入一些数据
> db.dcg.insert({"name": "wfj"})
WriteResult({ "nInserted" : 1 })

> show dbs
admin  0.000GB
dcg    0.000GB
local  0.000GB

// 5. 删除数据库
> db.dropDatabase()
{ "dropped" : "dcg", "ok" : 1 }
  • admin: root 数据库

  • local: 这个数据永远不会被复制,可以用来存储限于本地单台服务器的任意集合

  • config: 当Mongo用于分片设置时,config数据库在内部使用,用于保存分片的相关信息


三、集合(表)操作

// 1. 集合中添加数据
> db.site.insert({"name": "wfj", age: 26})


// 2. 查询数据库中的所有集合
> show tables
site
test

// 3. 删除集合
> db.test.drop()
true

// 4. 集合查询
> db.site.find()
{ "_id" : ObjectId("58fc50365fd546f0dcde1366"), "name" : "wfj", "age" : 26 }


// 5. 更新
> db.site.update({"name": "wfj"},{"name": "wfj", "age": 27}, {upsert: true})
// 说明:upsert 当不存在name=wfj时,相当于新插入一条数据

// 6. 删除集合中的文档
>  db.site.remove({"age": 27}, true)
// true 为可选boolean值,表示是否只删除满足条件的第一条