摘抄参考别人的MongoDB随笔记录
1.mongo:文档数据库,存储的是文档(Bson->json的二进制化)
特点:内部执行引擎为JS解释器,把文档存储为bson结构,在查询时转为js对象,并且可以通过js语法来操作
2.mongo与sql数据库相比:
sql数据库:结构化数据,定好了表格后,每一行的内容都是结构化的
mongo:文档数据,表下的数据都可以有自己的特点(有自己独特的属性和值),存储更加灵活
3.下载安装(直接去官网下载)
1.bin目录下文件解释:核心:
mongo:客户端
mongod:服务端
mongos:路由器(集群分片的时候用)
二进制导入导出:
mongodump:导出bson数据
mongorestore:导入bson数据
bsondump:bson转为json
mongolog:运行日志
数据导出导入:
mongoexport:导出容易识别json、csv、tsv格式文档
mongoimport:导入json、csv、tsv
运维工具:
mongosniff、mongotop、mongostat:观察mongo运行状态(运维时使用)
2.启动mongo服务:mongod --dbpath --logpath --fork(后台运行模式) --port 27017
4.mongo常用指令
1.基本入门指令
show dbs 查看当前数据库
use databaseName 选择数据库
show tables\collections 查看表
use databaseName 隐式创建数据库(如果存在则使用,不存在则在创建collection后创建此数据库,
如果没有创建collection,就不会创建库)
db.createCollection("collectionName") 直接创建表,不需要去定义结构(也可以隐式创建,在写入内容的时候自动创建)
db.collectionName.insert({key:value}) 往表中插入数据(创建数据的时候,如果没有指定_id的值,数据库会默认指定)
db.collectionName.find() 查看表中的数据
db.collectionName.drop() 删除collection(删除成功返回true,否则false)
db.collectionName.count() 统计数据条数
2.基本CURD命令
增:
db.collectionName.insert({key:value}) 增加单个文档(key/value类型任意)
db.collectionName.insert({_id:intValue,key:value}) 增加并指定id,不指定会自动生成
db.collectionName.insert( 增加多个文档
[
{_id:1,key:value},
{_id:2,key:value}
]
)
删:
db.collectionName.remove({查询表达式,true\false}) 条件可以是特有的id、查询语句内容例如:{_id:10},就可以把这个文档_id:10删除
如果不写条件内容,整个collection都被清空,true则找到多个匹配也只删除一行, false则找到多少删除多少
查:find(),findOne()
db.collectionNmae.find({查询表达式,}) 查询表达式也为json格式,如果不写则全部查询
db.collectionName.find({查询语句},{key:1}) 查询某个属性,默认id也被查出来
db.collectionName.find({},{key:1,_id:0}) 查询某个属性,不查询_id,要查询的为1,不查询的不写,不查_id的必须写0
改:update({查询语句},新值,选项)
db.collectionName.update({表达式},{新值},可选参数) 新值会覆盖掉原来全部的内容----1
db.collectionName.update({表达式},{$set:{要修改的key->value}},{upsert:true}) 后面参数为可选,为true,则$set的内容存在则修改,不存在则添加,这样的话只修改需要修改的内容,其他不改变(修改某个列)--2
修改时的赋值表达式:$set 修改某个值(有则)
$unset 删除某个列key
$rename 重名某个列key
$incr 增长某个列
浙公网安备 33010602011771号