mongodb02
memcached redis : kv数据库(key/value) mongodb 文档数据库,存储的是文档(Bson->json对象二进制化后叫bson,js的二进制对象,引擎是用js实现的). 特点:内部执行引擎为JS解释器, 把文档存储成bson结构,在查询时,转换为JS对象,并可以通过熟悉的js语法来操作.

mongo和传统型数据库(mqsql)相比,最大的不同:
传统型数据库: 结构化数据, 定好了表结构后,每一行的内容,必是符合表结构的,就是说--列的个数,类型都一样.
mongo文档型数据库: 表下的每篇文档,都可以有自己独特的结构(json对象都可以有自己独特的属性和值) 思路: 如果有电影, 影评, 影评的回复, 回复的打分
在传统型数据库中, 至少要4张表, 关联度非常复杂.
在文档数据库中,通过1篇文档,即可完成. 体现出文档型数据库的反范式化.
{
fiim:’天龙八部’
comment:[
{content:’王家卫的电影风格’,
reply:[‘支持’,’好’]
}
]
}
mongodb的安装
1: 下载mongodb www.mongodb.org 下载最新的stable版
2: 解压文件
3: 不用编译,本身就是编译后的二进制可执行文件.

4: 启动mongod服务 5: mongodb非常的占磁盘空间, 刚启动后要占3-4G左右,
如果你用虚拟机练习,可能空间不够,导致无法启动.
可以用 --smallfiles 选项来启动,
将会占用较小空间 400M左右.
mongo也可以去连接其他数据库。
1.1: show dbs 查看当前的数据库,admin放的是和管理相关的,用户的操作,安全配置。Local:放其他数据库的信息,这2个库不要动。
1.2 use test 选库
1.2 show tables/collections 查看当前库下的collection,mongodb的表不叫表叫collection,
1.3 如何创建库?(没有createdatabase 命令)
Mongodb的库是隐式创建,你可以use 一个不存在的库,use shop就创建了一个库,
然后在该库下创建collection,即可创建库db.createCollection(‘user’)
创建collection,这样就创建了一个库和collection(表),把表创建完了库才能创建好。
use shop
db.createCollection("user")
show dbs:
admin 0.000GB
local 0.000GB
shop 0.000GB
test 0.000GB
表就是一个个的集合,里面是一个个的文档,没有表的结构。表里面就是一个个的json对象。
use shop
show tables
db.user.insert({name:"1yw",age:1120})
db.user.insert({name:"1yww",age:1120,tt:"1oo"})
db.user.insert({na:113,ageeee:"1888"})
db.user.insert({ _id : 1112, ma : 113, ageeee : "1888",aaa:{aa:"ll0",sss:"ddddd"} })
db.user.insert({_id:1113,ss:[123,"ddd",'kk'],ma: 113, ageeee : "1888",aaa:{aa:"ll0",sss:"ddddd"} }) db.user.find():
{ "_id" : ObjectId("5a448f0283c2d5efb2d581d8"), "name" : "yw", "age" : 120 }
{ "_id" : ObjectId("5a448f0283c2d5efb2d581d9"), "name" : "yww", "age" : 120, "tt
" : "oo" }
{ "_id" : ObjectId("5a448f0283c2d5efb2d581da"), "na" : 13, "ageeee" : "888" }
{ "_id" : ObjectId("5a448f8283c2d5efb2d581db"), "name" : "1yw", "age" : 1120 }
{ "_id" : ObjectId("5a448f8283c2d5efb2d581dc"), "name" : "1yww", "age" : 1120, "
tt" : "1oo" }
{ "_id" : ObjectId("5a448f8283c2d5efb2d581dd"), "na" : 113, "ageeee" : "1888" }
自己指定id:
{ "_id" : 1000, "name" : "1yw", "age" : 1120 }
{ "_id" : 1001, "name" : "1yww", "age" : 1120, "tt" : "1oo" }
{ "_id" : 1002, "na" : 113, "ageeee" : "1888" }
{ "_id" : 1113, "ss" : [ 123, "ddd", "kk" ], "ma" : 113, "ageeee" : "1888", "aaa
" : { "aa" : "ll0", "sss" : "ddddd" } } Collection的意思没有,表是有结构的是有意思的,collection只是一个口袋一个集合。
1.5 collection允许隐式创建
Db.collectionName.insert(document); show collections :user
db.goods.insert({1:1,2:'','':3}) //就默认创建了goods这个collectio(表),没必要提前创建,collectios是表的集合
show collections:goods user
db.goods.find()://不同的数据库不能操作,要切换数据库,
{ "_id" : ObjectId("5a44961e83c2d5efb2d581de"), "1" : 1, "2" : "2", "3" : 3 } 1.6 db.collectionName.drop() ,
删除collection
use test
show tables
db.user.drop()
show collections 1.7 db.dropDatabase();
删除database
use shop //先移到本数据库
show tables
db.dropDatabase() use test
show tables
db.dropDatabase()
show dbs
mongodb02的更多相关文章
- MONGODB02 - MongoSocketWriteException 异常会迟到,但从不缺席
接上一个<MONGODB01 - Prematurely reached end of stream 错误定位及修复>处理完成之后,又报错了,场景也是一段时间不访问MongoDB,突然访问 ...
- 使用Scala操作Mongodb
介绍 Scala是一种功能性面向对象语言.它融汇了很多前所未有的特性.而同一时候又执行于JVM之上.随着开发人员对Scala的兴趣日增,以及越来越多的工具支持,无疑Scala语言将成为你手上一件不可缺 ...
- mongDB主从
MongoDB[第二篇]MongodDB主从 官方网站:http://www.mongodb.org/ MongoDB的一些参数 --logpath 日志文件路径 --master 指定为主机器 -- ...
- MongoDB用户权限认证
关于用户的认证及权限 用户是跟着库创建的,在哪个库创建的什么权限的什么用户,只对此库有相应权限(除超级管理员以外). 官网文档:https://docs.mongodb.com/master/refe ...
- mongodb副本集原理及部署记录
工作原理 1.副本集之间的复制是通过oplog日志现实的.备份节点通过查询这个集合就可以知道需要进行复制的操作 2.oplog是节点中local库中的一个固定的集合,在默认情况下oplog初始化大小为 ...
- mongodb拆库分表脚本
脚本功能: 1. 将指定的报告文件按照指定的字段.切库切表策略切分 2. 将切分后的文件并发导入到对应的Mongodb中 3. 生成日志文件和done标识文件 使用手册: -h 打印帮助信息,并 ...
- Configure MongoDB Replica Set
Table of Contents Introduction Requirements Create Replica Set Add Secondary Members Add an Arbiter ...
- 012.MongoDB读写分离
一 读写分离概述 1.1 读写分离描述 从应用程序角度来看,使用Replica Set 和使用单台mongo很像.默认的驱动程序会连接primary节点,并且将所有读写请求都路由到主节点.但也可以通过 ...
- 011.MongoDB性能监控
一 MongoDB 监控 1.1 监控概述 MongoDB自带了mongostat 和 mongotop 这两个命令来监控MongoDB的运行情况.这两个命令用于处理MongoDB数据库变慢等等问题非 ...
随机推荐
- 【51nod 1092】 回文字符串(区间DP)
回文串是指aba.abba.cccbccc.aaaa这种左右对称的字符串.每个字符串都可以通过向中间添加一些字符,使之变为回文字符串. 例如:abbc 添加2个字符可以变为 acbbca,也可以添加3 ...
- hibernate中时间比较的小笔记
// 开单时间 if (!"".equals(startDate) && startDate != null) { queryCondition = queryCo ...
- js作用域的几个问题
按照<权威指南>的说法,全局的变量作用域是全局性的,在js代码中,他处处都有定义.而在函数之内声明的变量,就只有在函数体内有定义了.函数的参数也是局部变量,他们只在函数体内部有定义.在函数 ...
- "转成"
在java中这样转 StringEscapeUtils.unescapeHtml(soapResponseData); 在js中这样转 str.replace(""",& ...
- 如何使用werkzeug创建WSGI APP
注意 : 1.定义__call__的意义 class App(): def __init__(self): pass def method(self): pass app=App() app() #错 ...
- Linux基础之vi编辑器(二)
vi 编辑器 man vim 一 打开文件,定义光标 vi +# test 打开文件,定位于#行.vi + test 打开test文件,定位于最后一行.vi +/patter ...
- 外星联络(bzoj 2251)
Description 小 P 在看过电影<超时空接触>(Contact)之后被深深的打动,决心致力于寻找外星人的事业.于是,他每天晚上都爬在屋顶上试图用自己的收音机收听外星人发来的信息. ...
- loadrunner 多用户并发操作解读
假设存在: 数据:A.B.C 虚拟用户:Vuser1.Vuser2.Vuser3 脚本中参数出现三次,脚本迭代三次 怎样取下一行数据? Sequential:顺序,所有虚拟用户按照顺序读取数据表 Ra ...
- 【BZOJ2560】串珠子(状压DP,容斥原理)
题意: 铭铭有n个十分漂亮的珠子和若干根颜色不同的绳子.现在铭铭想用绳子把所有的珠子连接成一个整体.现在已知所有珠子互不相同,用整数1到n编号.对于第i个珠子和第j个珠子,可以选择不用绳子连接,或者在 ...
- CERC 2014 (动态树+主席树)
CERC 2014 Pork barrel Problem : n个点m条边有边权的无向图,有q个询问,每次询问权值在[L,R]内的边组成的最小生成树的权值和,强制在线. n <= 1000, ...