MongoDB数据库

'''
mongodb :非关系型数据、在硬盘上

windows安装:软件下一步安装(自动添加到服务,勾选)
mongod启动起来了
cmd下敲 mongo 连接上
用第三方软件连接: robo 3t

数据库操作:
-创建
-use 数据库名字 (有则进入,无则创建,如果没有数据,show dbs是看不到的)
-删除
-use config #先切换到要删的库下
-db.dropDatabase() #删除当前库

集合操作(表操作)
-创建
-在表中插入一条数据,就自动创建了
-db在哪个库中,db就是谁
-db.table1.insert({"name":"lqz","age":18})
-db.table1.insert({"name":"lqz","age":18,"sex":"男"})
-show dbs 这个数据库就能看到了
-show tables 这个表就能看到了
-删除
-db.table2.drop()

数据行,文档操作
-新增
-db.table1.insert({"name":"lqz","age":18})
-先定义出一个对象(字典),db.table1.insert(字典名)
-插入多条
-db.table1.insertMany([user1,user2,user3,user4,user5])
-查询
db.table1.find()
-1、select * from db1.user where name = "egon";
db.table1.find({name:"egon"})
-select * from db1.user where name != "alex";
db.table1.find({name:{"$ne":"egon"}})
-不等于,大于,小于,大于等于,小于等于
-$ne $gt $lt $gte $lte
-db.table1.find({"_id":{"$gte":2,}})
-db.table1.find({'_id':{"$mod":[2,1]}})
db.table.find({'_id':{"$not":{"$mod":[2,1]}}})
-db.table1.find({"age":{"$in":[20,30,31]}})
-db.table.find({'name':/^j.*?(g|n)$/i})
-db.table.find({'_id':3},{'_id':0,'name':0,'age':1})
-db.table1.find({"hobbies.3":'tea'})
-db.table1.find({"hobbies.0":'music'})
-db.table1.find({},{'hobbies':{"$slice":-2},"age":1,"_id":0,"name":0,"addr":0})

-db.table1.find({},{'hobbies':{"$slice":-2}})
-db.table1.find({},{'hobbies':{"$slice":[1,2]},})
-db.user.find().sort({"_id":1,})
-db.user.find().sort({'_id':1}).limit(2).skip(4)
-db.table1.find({'age':{"$gt":30}}).count()
12 34 45

修改
-db.user.update({'age':20},{"name":"Wxx","hobbies_count":3}) 覆盖式的
-db.table1.update({'_id':2},{"$set":{"name":"WXX",}}) 不覆盖
-db.table1.update({'_id':6},{"$set":{"name":"egon","age":18}},{"upsert":true})
-db.table1.update({},
{
"$inc":{"age":-5}
},
{
"multi":true
}
)


select avg(salary) as avg_salary,post from db1.emp where id > 3 group by post having avg_salary > 10000;
'''

#用python操作mongodb
from pymongo import MongoClient

#1、链接
# client=MongoClient('mongodb://root:123@localhost:27017/')
client = MongoClient('localhost', 27017)

#2、use 数据库
# db=client['db2'] #等同于:client.db1
db=client.test

#3、查看库下所有的集合
# print(db.collection_names(include_system_collections=False))#4、创建集合
table_user=db['table1'] #等同于:db.user
# table1=db.table1
# #5、插入文档
# import datetime
# user0={
# "_id":1,
# "name":"egon",
# "birth":datetime.datetime.now(),
# "age":10,
# 'hobbies':['music','read','dancing'],
# 'addr':{
# 'country':'China',
# 'city':'BJ'
# }
# }
#
# user1={
# "_id":2,
# "name":"alex",
# "birth":datetime.datetime.now(),
# "age":10,
# 'hobbies':['music','read','dancing'],
# 'addr':{
# 'country':'China',
# 'city':'weifang'
# }
# }
# res=table_user.insert_many([user0,user1])
# res=table_user.insert_many
# print(res)
# print(table_user.count())

#6、查找

# from pprint import pprint#格式化细
# pprint(table_user.find_one())
# for item in table_user.find():
# pprint(item)

print(table_user.find_one({"_id":{"$gte":1},"name":'egon'}))
table_user.find()

#7、更新
table_user.update({'_id':1},{'name':'EGON'})

#8、传入新的文档替换旧的文档
table_user.save(
{
"_id":2,
"name":'egon_xxx'
}
)
posted @ 2019-11-28 16:43  凯帅  阅读(228)  评论(0编辑  收藏  举报