简介:
有c++语言编写,可为web应用提供可扩展的高性能能数据存储。
介于关系型数据库与非关系型数据库之间,是非关系型数据库当中功能最丰富的。
支持的数据结构松散,类似json的bson格式,即可存储比较复杂的数据类型。
特性:
特性 | |
---|---|
1 | 基于分布式文件存储的开源数据系统 |
2 | 可为web应用提供可扩展高性能的数据存储方案 |
3 | 将数据存储为一个文档,文档类似与jason格式 |
MongoDB结构:
MongoDB | 关系型数据库 |
---|---|
数据库(database) | 数据库(database) |
集合(collection) | 表(table) |
文档(document) | 行(row) |
基本操作:
进入mongodb数据库:mongo
退出mongodb数据库:exit
#进入mongodb数据库
Jayss@localhost:~$ mongo
MongoDB shell version: 2.6.10
connecting to: test
Server has startup warnings:
2019-02-03T23:43:03.529+0800 [initandlisten]
2019-02-03T23:43:03.529+0800 [initandlisten] ** NOTE: This is a 32 bit MongoDB binary.
2019-02-03T23:43:03.529+0800 [initandlisten] ** 32 bit builds are limited to less than 2GB of data (or less with --journal).
2019-02-03T23:43:03.529+0800 [initandlisten] ** See http://dochub.mongodb.org/core/32bit
2019-02-03T23:43:03.529+0800 [initandlisten]
#退出mongodb数据库
> exit
bye
库级操作
#显示所有数据库
> show dbs
admin (empty)
local 0.078GB
python_foundation 0.078GB
test 0.078GB
#---------------------
#查看当前所在库
> db
test
#---------------------
#切换/创建数据库:use 数据库名 (当数据库名不存在时,则自动创建该数据库)
> use local #切换local数据库
switched to db local
> db #显示当前数据库
local
> use study #创建study数据库
switched to db study
> db
study
> show dbs #此时查看不到study数据库的原因是study数据库中无数据
admin (empty)
local 0.078GB
python_foundation 0.078GB
test 0.078GB
#---------------------
#删除库:db.dropDatabase()
> show dbs #显示所有数据库
admin (empty)
local 0.078GB
python_foundation 0.078GB
study 0.078GB
test 0.078GB
> use study #切换到study数据库
switched to db study
> db.dropDatabase() #删除当前所在的数据库
{ "dropped" : "study", "ok" : 1 }
> show dbs #显示当前所有的数据库(可看到study数据库已被删除)
admin (empty)
local 0.078GB
python_foundation 0.078GB
test 0.078GB
集合操作
#查看当前数据库的集合:show collections
> use python_foundation #切换python_foundation数据库
switched to db python_foundation
> db #显示当前所在数据库
python_foundation
> show collections #显示当前所载数据库的集合
student
system.indexes
#---------------------
#创建集合:db.createCollection(集合名)
> db.createCollection('user1') #创建名叫name的集合
{ "ok" : 1 }
> show collections #查看当前数据库所有集合
user1
system.indexes
#---------------------
#删除集合
> show collections #查看当前数据库所有集合
name
student
system.indexes
> db.name.drop() #删除名叫name的集合
true
> show collections #查看当前数据库所有集合
student
system.indexes
文档操作
即添加文档(数据)
#查看集合中全部文档:db.集合名.find()
> db.user1.find()
{ "_id" : ObjectId("5c62c1292ee6afdfb9c69779"), "name" : "jayss" }
#---------------------
#添加数据:db.集合名.insert({数据})
> db.user1.insert({'name':'jayss'}) #为user1集合添加文档
WriteResult({ "nInserted" : 1 })
> db.study.find() #查看user1集合的所有文档
{ "_id" : ObjectId("5c62ad6a2ee6afdfb9c69775"), "name" : "jayss" }
#添加多条文档
> db.user1.insert([
... {'age':20},
... {'sex':'male'}])
BulkWriteResult({
"writeErrors" : [ ],
"writeConcernErrors" : [ ],
"nInserted" : 2,
"nUpserted" : 0,
"nMatched" : 0,
"nModified" : 0,
"nRemoved" : 0,
"upserted" : [ ]
})
#查看集合user1的所有文档
> db.user1.find()
{ "_id" : ObjectId("5c62c1292ee6afdfb9c69779"), "name" : "jayss" }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5fec9"), "age" : 20 }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5feca"), "sex" : "male" }
#---------------------
#修改一条数据:db.集合名.update({旧数据},{$set:{新数据}})
> db.user1.find()
{ "_id" : ObjectId("5c62c1292ee6afdfb9c69779"), "name" : "jayss" }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5fec9"), "age" : 20 }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5feca"), "sex" : "male" }
> db.user1.update({'age':20},{$set:{'age':21}}) #把集合user1里的age等于20修改为21
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.user1.find()
{ "_id" : ObjectId("5c62c1292ee6afdfb9c69779"), "name" : "jayss" }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5fec9"), "age" : 21 }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5feca"), "sex" : "male" }
#---------------------
#格式化显示:db.集合名.find().pretty()
> db.user1.find().pretty()
{ "_id" : ObjectId("5c62ad6a2ee6afdfb9c69775"), "name" : "jayss" }
{ "_id" : ObjectId("5c62bc992ee6afdfb9c69776"), "age" : 20 }
{ "_id" : ObjectId("5c62bc992ee6afdfb9c69777"), "sex" : "male" }
#---------------------
#查看满足条件的数据:db.集合名.find({数据})
> db.user1.find({'name':'jayss'})
{ "_id" : ObjectId("5c62ad6a2ee6afdfb9c69775"), "name" : "jayss" }
#---------------------
#删除集合中满足条件的文档
> db.user1.remove({'sex':'male'}) #删除sex数据
WriteResult({ "nRemoved" : 1 })
> db.user1.find()
{ "_id" : ObjectId("5c62c1292ee6afdfb9c69779"), "name" : "jayss" }
{ "_id" : ObjectId("5c62c2b977f12d5b7ee5fec9"), "age" : 21 }
#---------------------
#删除集合中所有文档:db.集合名.remove()
> db.user1.remove()
欢迎技术交流
WeChat......