共计 3634 个字符,预计需要花费 10 分钟才能阅读完成。
(1) mongodb 的安装
下载 tgz 解压后,需要添加相应的环境变量才能在终端直接启动 mongod。
mongodb 数据存储在 /data/db 中,需要手动创建目录树,同时 mongod 执行的时候如果权限不够(不能往 /data/db 写东西),需要改一下权限。
(2) mongod 的启动
之后就可以在终端上输入 mongod,这个时候就启动了 mongodb,但是这个时候是在终端运行着的,相当于一个前台进程,在这个终端你不能做其它操作。
可以使用 –fork 选项,开启后会回到终端交互,可以继续做自己的事。
fork 表示以守护进程的方式启动 mongodb,创建一个服务器进程。fork 要配合 logpath 使用,表示日志信息输出到哪个日志文件。logappend 表示以追加的方式写入日志文件。
当然还有别的启动方式,目前还没用到,暂时先不说。
mongod --fork --logappend ~/mongo.log --logappend
(3)mongo 的使用
启动 mongod 后就可以在终端进入 mongo 进行相关数据库操作
(4) mongo 里的 update 操作
(4) 几个查询操作符
(5) 几个更新操作符
{$inc : { field : value} }
{$set : { field : value} }
{$unset : { field : 1} }
{$push : { field : value} } 追加,field 要是数组
{$pull : { field : value} } 和 push 相反
{$pop : { field : 1 } } 删除最后 1 个值
{$pop : { field : -1 } } 删除第 1 个值
{$currentDate: { <field1>: {$type:"date", ... } } 设定当前时间
{$rename: {<field1>:<newName1>,<field2>:<newName2>,...} } 重命名字段
(6) 用户权限设置
mongodb 默认没有帐号登录,需要自己先添加帐号。
在 admin 数据库添加的帐号为管理员帐号,在其它数据库添加的帐号为普通用户
用户只能在用户所在的数据库登录,包括管理员。
管理员只能在 admin 登录认证后才能管理其它数据库。
6.1 添加管理员帐号
use admin
db.system.users.find()
db.addUser('liaohuqiang','liaohuqiang') 添加管理员用户,mongodb 版本不同,可能会报错,如果报错找不到 addUser 则用下面这个
db.createUser(
{user: 'liaohuqiang',
pwd: 'liaohuqiang',
roles: [{ role: "userAdminAnyDatabase", db: "admin" } ]
}
)
6.2 重新启动 mongod
创建成功后重启 mongod,这个时候开启连接可以带上 –auth 选项,代表验证用户权限。
mongod --fork --logappend ~/mongo.log --logappend --auth
6.3 认证登录
开启后,直接 mongo 进去操作会受限,可以 mongo 连接时授权登录;也可以连接进去后再认证。
mongo -u liaohuqiang -p --authenticationDatabase admin
mysql -h ip -u root -p 乱入,对比一下 mysql 的连接
mongo
use admin
db.auth('liaohuqiang', 'liaohuqiang')
6.4 关闭连接
认证登录后就可以像之前那样操作数据库了,操作完后可以在 admin 数据库关闭连接。
use admin
db.shutdownServer() 关闭 mongod
(7) pymongo 的连接
import pymongo
client=pymongo.MongoClient('mongodb://username:password@ip')
db=client['doctor']
users=db["user"]
result= list(users.find( {'role':1}, {'_id':0} ) ) 选多个
result= users.find_one({"name":name}) 选单个
users.insert_one({"name":name}) 插一个,会自动生成主键
users.remove({"name":name}, {"multi":True} ) 删多个
users.update_one({'name':name},{'$inc':{'commitCount':1}}) 改一个
更多 MongoDB 相关教程见以下内容:
MongoDB 文档、集合、数据库简介 http://www.linuxidc.com/Linux/2016-12/138529.htm
MongoDB 3 分片部署及故障模拟验证 http://www.linuxidc.com/Linux/2016-12/138529.htm
Linux CentOS 6.5 yum 安装 MongoDB http://www.linuxidc.com/Linux/2016-12/137790.htm
CentOS 7 yum 方式快速安装 MongoDB http://www.linuxidc.com/Linux/2016-11/137679.htm
MongoDB 的查询操作 http://www.linuxidc.com/Linux/2016-10/136581.htm
Ubuntu 16.04 中安装 MongoDB3.4 数据库系统 http://www.linuxidc.com/Linux/2017-07/145526.htm
MongoDB 3.4 远程连接认证失败 http://www.linuxidc.com/Linux/2017-06/145070.htm
MongoDB 权威指南第 2 版 PDF 完整带书签目录 下载见 http://www.linuxidc.com/Linux/2016-12/138253.htm
MongoDB 的详细介绍:请点这里
MongoDB 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-07/145797.htm