MongoDB的安装、Mongo shell和PyMongo的基本使用

MongoDB安装

系统环境:CentOS 7

1、下载安装包

curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.2.12.tgz

2、解压

tar -zxvf mongodb-linux-x86_64-3.2.12.tgz

3、移动到指定位置

mv  mongodb-linux-x86_64-3.2.12/ /usr/local/mongodb

4、在/usr/local/mongodb下创建文件夹

mkdir -p data/db
mkdir  logs

5、在/usr/local/mongodb/bin下新建配置

vi mongodb.conf

输入如下内容:

dbpath = /usr/local/mongodb/data/db #数据文件存放目录
logpath = /usr/local/mongodb/logs/mongodb.log #日志文件存放目录

port = 27017  #端口
fork = true  #以守护程序的方式启用,即在后台运行
nohttpinterface = true
auth=true
bind_ip=0.0.0.0

6、环境变量配置

vi /etc/profile

输入如下内容:

export MONGODB_HOME=/usr/local/mongodb
export PATH=$PATH:$MONGODB_HOME/bin

保存后,重启系统配置:

source /etc/profile

7、启动
在/usr/local/mongodb/bin下

./mongod -f mongodb.conf

MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。注意:该功能只适用于 MongoDB 3.2 及之前的早期版本。

./mongod -f mongodb.conf --rest

MongoDB 的 Web 界面访问端口比服务的端口多1000。
如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017

8、关闭

./mongod -f ./mongodb.conf --shutdown

9、设置远程访问

firewall-cmd --zone=public --add-port=27017/tcp --permanent #设置防火墙
firewall-cmd --reload #重启防火墙
firewall-cmd --permanent --query-port=27017/tcp #查看是否设置成功

10、MongoDB后台管理 Shell
MongoDB Shell是MongoDB自带的交互式Javascript shell,用来对MongoDB进行操作和管理的交互式环境。当你进入mongoDB后台后,它默认会链接到 test 文档(数据库):

cd /usr/local/mongodb/bin
./mongo
MongoDB shell version: 3.2.12
connecting to: test
……

11、创建用户
创建用户管理员:

  use admin
  db.createUser({user:"root",pwd:"root123456",roles:["userAdminAnyDatabase"]})
  db.auth('root','root123456')

以用户管理员身份登录,并切换数据库,创建数据库用户:

# 切换到test数据库
  use test
# 创建用户名、密码、角色
  db.createUser({user:"username",pwd:"@user123456*",roles:[{role:"readWrite",db:"securitydata"}]})
# 设置mongodb配置中的auth为true(mongod.conf):auth=true
# 验证mongodb数据库权限
  db.auth('user','@user123456*')

Mongo shell基本命令

数据库

show dbs #显示所有数据库
use DATABASE_NAME #切换到数据库DATABASE_NAME
db.dropDatabase() #删除当下数据库

集合

use test
db.createCollection("mycol")
db.createCollection("mycol", { capped : true, autoIndexId : true, size : 6142800, max : 10000 } )
show collections
db.mycol.drop()

文档

# 增加
db.col.insert({title: 'MongoDB 教程', 
    description: 'MongoDB 是一个 Nosql 数据库',
    by: '菜鸟教程',
    url: 'http://www.runoob.com',
    tags: ['mongodb', 'database', 'NoSQL'],
    likes: 100
})

# 删除
db.col.remove({'title':'MongoDB 教程'})
db.col.remove({}) # truncate 所有数据

# 更新 
db.col.update({'title':'MongoDB 教程'},{$set:{'title':'MongoDB'}},{multi:true}) #没有multi参数则只更新发现的第一条记录
#查看更多:http://www.runoob.com/mongodb/mongodb-update.html

# 查询
db.col.find({key1:value1, key2:value2}).pretty()
db.col.findOne({key1:value1, key2:value2}).pretty()
#查看更多:http://www.runoob.com/mongodb/mongodb-query.html

pymongo基本使用

连接

from pymongo import MongoClient

# 连接客户端方式
client = MongoClient()
client = MongoClient('localhost', 27017)

# 连接db方式
db = client.test_database
db = client['test-database']

# 连接collection方式
collection = db.test_collection
collection = db['test-collection']

# 需要用户认证时,在db实例化后执行下列代码
db.authenticate(ACCOUNT, PWD) #对应db的账户和密码

文档的常用命令

posts = db.posts

# 插入
post = {"author": "Mike"}
post_id = posts.insert_one(post).inserted_id

# 批量插入
new_posts = [{"author": "Mike",{"author": "Eliot"}]
result = posts.insert_many(new_posts)
result.inserted_ids

# 查询
posts.find_one({"author": "Eliot"})
posts.count_documents({"author": "Mike"})
posts.count_documents({})
posts.find({"date": {"$lt": d}}).sort("author")


参考资料

[1] centos7下mongodb安装和配置
https://blog.csdn.net/rzrenyu/article/details/79472508
[2] MongoDB菜鸟教程
http://www.runoob.com/mongodb/mongodb-tutorial.html
[3] PyMongo API
http://api.mongodb.com/python/current/tutorial.html

展开阅读全文

没有更多推荐了,返回首页