您的位置:首页 > 数据库 > Mongodb

MongoDB笔记

2013-08-12 17:40 337 查看
use foobar 指向数据库
db 查看指定的数据库是哪个.打印出名字
db.ts.insert({"Name":"Enel"}) 往ts表里面插入 Key:Name Value:Enel
db.ts.find() 查看ts表
db.ts.findOne() 仅仅查找一个 返回找到的表.用该表进行update操作
db.ts.update(查找表的键值对,修改后的表) 更新操作
db.ts.update(查找到的表,跟上要找的键值对) 也可以修改值
db.ts.remove({name:"Enel"}) 删除全部名字叫Enel的
修改器:
$inc db.ts.update({"age":30},{"$inc":{"age":1}}) 会把age变量 +1操作.
$set 用来制定一个键的值.如果这个建不存在,则创建它.
$unset 用来删除键

修改器数组操作
$push 往键值里面插入数组.数组里面可以是结构.会一直往后添加
$ne 不在数组里就把其加进去.反之不加
$addToSet 和ne同理..但是可以嵌套$each使用 例如. {$addToSet: {"emails":{"$each":["a", "b", "c"]}}}
$pop {$pop : {key : 1}}从末尾删除一个数组元素 -1从头删除一个数组元素
$pull 删除数组中所有指定的值

数组定位修改器 $ 只有第一条会修改

条件查询 配合find使用
$lt <
$lte <=
$gt >
$gte >=

$in 可以用来查询一个键的多个值
$or 更通用一些 用来完成多个键值的任意给定值
$nin 返回与数组中所有条件都不匹配的文档.
$not
$mod 可以配合not使用. find({"id_num":{"$not":{"$mod":[5,1]}}})
20~30的用户. find({"age":{"$lt":30, "$gt":20}})
$exists 判断键值已经存在

查询数组
$all 需要多个元素来匹配数组
$size 查询指定长度的数组
$slice 返回数组的一个子集合

$where 后面可以加个函数来使用
ensureIndex 设置索引

$ ./mongodump -d DBNAME -o backup
$ ./mongorestore -d foo --drop backup/test/

db.runCommand({"serverStatus":1})
db.runCommand({"fsync":1,"lock":1})
db.$cmd.sys.unlock.findOne()
db.currentOp()

mongod --repair
db.repairDataBase()
{"repairDatabase":1}

启动主服务器
mongod --master
启动从服务器
mongod --slave --source master_address

--only 在从节点上指定只复制特定某个数据库(默认复制所有数据库)
--slavedelay用在从节点上,当应用主节点的操作时增加延时.这样就能轻松设置延时从节点了.这种节点对用户无意中删除重要文档或者插入垃圾数据等事故有很重要的防护作用.这些不良操作都会被复制到所有从节点上.
--fastsync 以主节点的数据快照为基础启动从节点
--autoresync 如果从节点与主节点不同步了.则自动更新同步
-oplogSize 主节点oplog的大小

添加删除源
use local
db.sources.insert({"host":"localhost:27017"})

导出到文件
mongoexport -d JLTX -c userlist -o user.dat

导出到CSV文件
mongoexport -d JLTX -c userlist -csv -f uid,username,age -o user_csv.dat

删除user表
db.user.drop()

导入JSON数据到数据库
mongoimport -d JLTX -c userlist user.dat

导入CSV数据到数据库
mongoimport -d JLTX -c userlist --type csv --headerline --file user_csv.dat

数据备份
mongodump -d JLTX 备份到当前目录下
mongodump -d JLTX -o JLTX_dump 备份到JLTX_dump目录

删除数据库
use JLTX
db.dropDataBase()
show dbs

恢复数据库
mongorestore -d JLTX JLTX_dump
-drop参数就会先删除数据库然后再插入

绑定IP内网地址访问MongoDB服务
mongod --bind_ip 192.168.1.19
客户端访问就需要指明IP登陆 mongo 192.168.1.19

设置监听端口
mongod --bind_ip 192.168.1.103 --port 89898
mongo 192.168.1.103:89898

启动登陆验证
mongod --auth

通过eval参数执行指定语句
mongo test --eval "printjson(db.t1.count())"

capped collection的创建
db.createCollection("name",{size:10000})
db.createCollection("name",{capped:true,size:1000000,max:100})

mongod参数说明

dbpath: 文件存放路径
logpath: 错误日志文件
bind_ip: 对外服务的绑定ip
port: 对外服务端口
fork:后台Daemon形式运行服务
journal:开启日志功能
syncdelay: 系统同步刷新磁盘的时间
directoryperdb:每个db存放在单独的目录中.
maxConns:最大连接数
repairpath:执行repair时的临时目录
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: