python3 mongo

本文介绍了如何在Ubuntu系统中安装MongoDB,创建具有管理员权限的用户,并通过Python3使用pymongo库进行连接。步骤包括运行sudo apt-get install mongodb安装MongoDB,使用admin数据库创建用户,以及通过pip3 install pymongo安装Python驱动。

安装mongo

sudo apt-get install mongodb
创建用户:
输入:use admin
输入:db.createUser(‘zz’,‘123’)创建了一个用户名为zz,密码为123的用户,赋予最高权限
配置文件:
mongodb.conf

#详细记录输出
verbose = true
#绑定IP
bind_ip = 0.0.0.0
#指定服务端口号
port = 27017
#指定日志文件,注意是指定文件不是目录
logpath = /var/log/mongodb/logs/mongodb.log
#使用追加方式写日志
logappend = true
#指定数据库路径 
dbpath = /var/lib/mongodb/db
#设置每个数据库将被保存在一个单独的目录
directoryperdb = true
#启用验证
auth = false
#以守护进程的方式运行MongoDB,创建服务器进程
fork = true
#安静退出
quiet = true
基本命令(帮助命令)
  db.help()
  db.yourColl.help();
  db.youColl.find().help();
  rs.help();
 
#================数据库=========================== 
use dbname						创建/切换数据库
show dbs						查看所有的数据库
db.dropDatabase();				删除数据库
db.cloneDatabase(127.0.0.1);  克隆数据库
db.copyDatabase("mydb", "temp", "127.0.0.1");将本机的mydb的数据复制到temp数据库中
db.repairDatabase(); 			修复当前数据库
db.getName();					查看当前数据库
db.getMongo();					查看当前的链接地址

#=================collection======================
db.createCollection(“collName”, {size: 20, capped: 5, max: 100});创建一个数据集合
db.getCollection("account");	得到集合
db.getCollectionNames();		所有集合的名字
db.printCollectionStats();      所有集合的状态
db.yourColl.count();			数目
db.userInfo.find();						==select * from userInfo
db.userInfo.find({"age": 22}); 			==select * from userInfo where age=22
db.userInfo.find({age: {$in: 22,23}});	==select * from userInfo where age in [22,23]
db.userInfo.find({age: {$gt: 22}});		$regex还有个这东西
db.userInfo.find({age: {$lt: 22}});
db.userInfo.find({age: {$gte: 25}});
db.userInfo.find({age: {$gte: 23, $lte: 26}});
db.userInfo.find({name: /mongo/});		==select * from userInfo where name like ‘%mongo%;
db.userInfo.find({name: /^mongo/});		==select * from userInfo where name like ‘mongo%;
db.userInfo.find({}, {name: 1, age: 1});==select name, age from userInfo;
db.userInfo.find({age: {$gt: 25}}, {name: 1, age: 1});   ==select name, age from userInfo where age >25;
db.userInfo.find().sort({age: 1});
db.userInfo.find().sort({age: -1});
db.userInfo.find({name: 'zhangsan', age: 22});   ==select * from userInfo where name = ‘zhangsan’ and age =22;
db.userInfo.find().limit(5);			==selecttop 5 * from userInfo;
db.userInfo.find().skip(10); 			==select * from userInfo where id not in (selecttop 10 * from userInfo);
db.userInfo.find().limit(10).skip(5);	查询在5-10之间的数据
db.userInfo.find({age: {$gte: 25}}).count();
db.userInfo.distinct("name");   去重复
db.users.save({name: ‘zhangsan’, age: 25, sex: true});						添加
db.users.update({age: 25}, {$set: {name: 'changeName'}}, false, true);		修改
==update users set name = ‘changeName’ where age = 25;
db.users.update({name: 'Lisi'}, {$inc: {age: 50}, $set: {name: 'hoho'}}, false, true);
==update users set age = age + 50, name = ‘hoho’ where name = ‘Lisi’;
db.users.remove({age: 132});												删除


#=================user============================
db.addUser("name","password",true==readonly)
db.auth("zz",'123')				数据库的认证
show users
db.removeUser("zz")

#====================else==========================
db.getPreError()
db.resetError();

#=====================index========================
db.userInfo.ensureIndex({name: 1});
db.userInfo.ensureIndex({name: 1, ts: -1});
db.userInfo.getIndexes();
db.users.reIndex();
db.users.dropIndex("name_1");
db.users.dropIndexes();
db.users.findAndModify({
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});
db.runCommand({ findandmodify : "users",
    query: {age: {$gte: 25}},
    sort: {age: -1},
    update: {$set: {name: 'a2'}, $inc: {age: 2}},
    remove: true
});

use in python3

1,安装pip3 install pymongo

#!/usr/bin/python3
import pymongo
myclient = pymongo.MongoClient("mongodb://dd:123@localhost:27017/")
mydb = myclient["mytest"]
mycol = mydb["sites"]
mydict = { "name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
x = mycol.insert_one(mydict)

在这里插入图片描述

#!/usr/bin/python3
import pymongo
from collections import OrderedDict

myclient = pymongo.MongoClient("mongodb://dd:123@localhost:27017/")
mydb = myclient["mytest"]
mycol = mydb["sites"]
# 集合的查看
collist = mydb. list_collection_names()
mycol.delete_many({})
print(collist)


# 进行插入
def insertData():
    mydict = {"name": "RUNOOB", "alexa": "10000", "url": "https://www.runoob.com"}
    mycol.insert_one(mydict)
    mylist = [
        {"name": "Taobao", "alexa": "100", "url": "https://www.taobao.com"},
        {"name": "QQ", "alexa": "101", "url": "https://www.qq.com"},
        {"name": "Facebook", "alexa": "10", "url": "https://www.facebook.com"},
        {"name": "知乎", "alexa": "103", "url": "https://www.zhihu.com"},
        {"name": "Github", "alexa": "109", "url": "https://www.github.com"}
    ]
    mycol.insert_many(mylist)


# 进行查询
def displaySql(sql):
    for x in mycol.find(sql, {"_id": 0, "name": 1, "url": 1}).sort("name", -1):  # 1是显示
        for stri in OrderedDict(x).values():
            print('%-30s' % stri, end='')
        print()


# delete
def deleteDate():
    mycol.delete_one({"name": "百度"})
    mycol.delete_many({"name": "百度"})


# update
def updateData():
    mycol.update_one({"name": '知乎', }, {"$set": {"url": "www.baidu.com"}})
    mycol.update_many({"name": {"$regex": "^R"}}, {"$set": {"name": "百度"}})


print("Data insert")
insertData()
sql = {}
displaySql(sql)
print("display Data")
sql = {"name": {"$in": ['知乎', 'QQ']}}
displaySql(sql)
print("update Data")
sql = {}
displaySql(sql)
print("delete Data")
updateData()
displaySql(sql)
'''
result:
['sites', 'system.indexes']
Data insert
知乎                            https://www.zhihu.com         
Taobao                        https://www.taobao.com        
RUNOOB                        https://www.runoob.com        
QQ                            https://www.qq.com            
Github                        https://www.github.com        
Facebook                      https://www.facebook.com      
display Data
知乎                            https://www.zhihu.com         
QQ                            https://www.qq.com            
update Data
知乎                            https://www.zhihu.com         
Taobao                        https://www.taobao.com        
RUNOOB                        https://www.runoob.com        
QQ                            https://www.qq.com            
Github                        https://www.github.com        
Facebook                      https://www.facebook.com      
delete Data
知乎                            www.baidu.com                 
百度                            https://www.runoob.com        
Taobao                        https://www.taobao.com        
QQ                            https://www.qq.com            
Github                        https://www.github.com        
Facebook                      https://www.facebook.com      

'''
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值