Ubuntu 安装MongoDB
安装:
sudo apt-get install mongodb
启动关闭
启动:sudo service mongodb start
关闭:sudo service mongodb stop
MongoDB 使用
https://www.cnblogs.com/garinzhang/p/mongoDB_basic_usage.html
云服务器需要设置入网端口27017白名单(防止防火墙拦截)
远程连接配置
https://www.cnblogs.com/jinxiao-pu/p/7121307.html
更改以上这篇博客中的几个问题:
- 把 bind_ip=127.0.0.1 修改成 bind_ip=0.0.0.0 (不能注释掉)
- 将port = 27017 注释去掉
- 其中有个 auth = true ,如果取消注释的话,在下方需要进行账户认证,注释掉就不要了
- 添加账号用户:(官方文档)
https://docs.mongodb.com/manual/reference/method/db.createUser/index.html
python远程连接
代码来源博客我找不到了,,十分抱歉(代码增加一个账户认证并更新了功能函数名)
# -*- coding:utf-8 -*-
from pymongo import MongoClient
settings = {
"ip":'服务器IP', #ip
"port":27017, #端口
"db_name" : "Spider_data", #数据库名字,没有则自动创建
"set_name" : "test_set" #集合名字,没有则自动创建
}
class MyMongoDB(object):
def __init__(self):
try:
self.conn = MongoClient(settings["ip"], settings["port"])
except Exception as e:
print(e)
self.db = self.conn[settings["db_name"]]
# 用户认证
self.db.authenticate("yingzheng", "12345678") # 账号 + 密码
self.my_set = self.db[settings["set_name"]]
#插入
def insert(self,dic):
self.my_set.insert_one(dic)
print("插入成功")
#更新
def update(self,dic,newdic):
self.my_set.update_one(dic,newdic)
print("更新成功")
#删除
def delete(self,dic):
self.my_set.delete_one(dic)
print("删除成功")
#查找
def dbFind(self,dic):
data = self.my_set.find(dic)
for result in data:
print(result)
print("查找成功")
#查找全部
def findAll(self):
# 查询全部
for i in self.my_set.find():
print(i)
if __name__ == "__main__":
dic = {"name": "tom", "age": 18}
mongo = MyMongoDB()
mongo.insert(dic)
mongo.findAll()
mongo.update({"name": "tom"}, {"$set": {"age": "25"}})
mongo.dbFind({"name": "tom"})
mongo.delete({"name": "tom"})
mongo.findAll()