20-1-4 MongoDB
远程服务
linux安装mongodb
首先配置在云服务器(centos)的yum源
官网源
1 | [mongodb-org-4.2] |
接着直接sudo yum install -y mongodb-org就行
接着开放端口,云服务器商提供者可能会提供图形化界面,直接设置就好。然后配置。
1 | #图形化操作忽略这个 |
1 | vim /etc/mongod.conf |
接着在比如自己的win电脑上连接,打开cmd或者powershell
.\mongo ipadress:port
身份认证
>use test
>db.createUser({ user:”admin”, pwd:”123456”, roles:[“readWrite”, “dbAdmin”] }) #roles里可以配置权限
接着配置文件里修改内容
1 | vi /etc/mongod.conf |
接着就可以连接
1 | // 终端连接 |
分片
分片就是水平分布式扩展mongodb,这样能以低成本的方式提高性能。
这一部分没怎么尝试。
备份
比如在自己的win电脑。按照普通安装方法,可能mongod会自动加入到系统服务
win+r services.msc 找到mongo服务关闭
服务器端启动,并配置路径,配置内容也可以保存为一个文件,在命令中引用
.\mongod -dbpath c:\software\mongodb\data
备份 h后是地址,本机就是localhost d后是数据库名字 o后是保存的地址
.\mongodump -h 127.0.0.1 -d xingo -o C:\software\mongodb\dump
恢复 可以选择参数是否删除之前的
.\mongorestore -h 127.0.0.1 -d xingo C:\software\mongodb\dump\xingo
_id
mongobd的文档会生成一个默认的ObjectID,记录时间等信息,表内数据按照其排序。
var objid = ObjectId() #可以生成一个id
引用
数据插入时可以引用其他数据
db.collectionname.insert({‘title’:’a’,’content’:ObjectId(‘xxxxxxxx’)})
var rea = db.collectionname.findOne({‘title’:’a’})
db.collectionname.find({‘_id’:{‘$in’:rea[‘content’]}})
索引
简单的说,索引就是将文档按照某个(或某些)字段顺序组织起来,以便能根据该字段高效的查询。
mongodb按照默认的生成的_id查询,就会带来往往需要扫描全体,因此建立索引排序,在查找时就能快速查询。
db.collectionname.createIndex( {age: 1} ) #建立age正序排序
db.collectionname.createIndex( {name: 1, age: 1} ) #复合索引
db.collectionname.getIndexes() #查看索引
db.collectionname.dropIndex(“”) #删除索引
20-1-4 MongoDB