mongodb服务搭建
mongodb安装
sudo apt-get install mongodb
安装完毕后,mongod服务会自动开启,执行ps -ef | grep mongo
可看到
在终端输入mongo
,可看到
mongodb使用
为了防止linux系统默认最大文件打开数的限制影响mongodb服务的正常使用,使用ulimt -n 20000
重新设置最大文件打开数
之后创建mongodb数据目录及日志目录,并启动服务,mongodb默认端口为27017
mkdir -p /home/ubuntu/mongdata/db
mkdir -p /home/ubuntu/mongdata/log
mongod --dbpath /home/ubuntu/mongodata/db/ --logpath /home/ubuntu/mongodata/log/ --maxConns=4000
mongodb开机自启动与监听
1.编写一个python脚本对mongod进程进行监听
import os
import time
import datetime
def main():
while(1):
output = os.popen("ps -ef | grep mongod").read()
checkTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time()))
checker = output.find("mongod --dbpath /home/ubuntu/mongodata/db/")
if checker == -1:
mongoLogFile = open("./mongoServerlog.txt",'a+')
logmess = checkTime+" restart mongodb service\n"
mongoLogFile.write(logmess)
output = os.popen("mongod --dbpath /home/ubuntu/mongodata/db/ --maxConns=2000").read();
mongoLogFile.write(output)
mongoLogFile.close()
else:
pass
time.sleep(30)
if __name__ == "__main__":
main()
2.python脚本开机自启动
1.创建autostart目录
cd ~/.config
sudo mkdir autostart
2.创建文件 app.desktop文件写入
[Desktop Entry]
Type=Application
Exec=python /home/ubuntu/mongodata/mongoMonit.py
Hidden=false
NoDisplay=false
python flask服务搭建
安装必要库
sudo pip install flask flask_cors
sudo pip install pymongo
编写restful中基本的get和post方法,并设置允许跨域请求,这里假设http客户端发来信息为json格式
#coding:utf-8
from flask import Flask, request, jsonify
from flask_cors import *
import json
app = Flask(__name__)
CORS(app, resources=r'/*')
@app.route('/')
# 功能:GET测试
# 输入参数:无
# 输出参数:无
# 本体状态:完成
# 外部方法:无
@app.route('/api/testget', methods = ['GET'])
def apiTestGet():
jsonstr = json.dumps({"testget":1})
return jsonify({"status":True, "testget":1})
# 功能:POST测试
# 输入参数:无
# 输出参数:无
# 本体状态:完成
# 外部方法:无
@app.route('/api/testpost', methods = ['POST'])
def apiTestPost():
data=request.get_json(force=True)
if data:
print(data)
return jsonify({"status":True})
else:
return jsonify({"status":False})
if __name__ == "__main__":
app.run(host="0.0.0.0", port=18081)
此python服务程序推荐使用supervisor进行管理
python mongodb使用
数据库连接与增删改查
#coding:utf8
from pymongo import MongoClient
dbip = "127.0.0.1"
dbport = 27017
class dataBase():
def __init__(self):
self.conn = self.initDataBase()
def initDataBase(self):
conn = MongoClient(dbip, dbport)
# db.authenticate(dbrootUser, dbrootPassword)
return conn
def dbFind(self,data):
testDB = self.conn["dbdemo"]
testSet = stockListDB["dbdemo"]
findList = []
for element in testSet.find({"USER":data}).limit(24): #可对查找条数进行限制,若只需要查找一条,则使用find_one
findList.append({"USER":element["USER"],"PASSWD":element["PASSWD"]})
return findList
def dbInsert(self,data):
testDB = self.conn["dbdemo"]
testSet= stockListDB["dbdemo"]
testSet.insert_one({"USER":data["USER","PASSWD":data["PASSWD"]}) #若由多条数据需要插入,则使用insert_many,较单条逐一插入由明显效率提升
def dbUpdate(self,data):
testDB = self.conn["dbdemo"]
testSet= stockListDB["dbdemo"]
for element in testSet.find({"USER":data["USER"]}).limit(24):
tempQuery = {"USER":data["USER"]}
newValue = {"$set":{"PASSWD":data["PASSWD"]}}
testSet.update_one(tempQuery,newValue)