from pymongo import MongoClient
#连接
conn = MongoClient('127.0.0.1', 27017)
#进入数据库
db = conn.edianzu #连接mydb数据库,没有则自动创建
#进入集合
pinglun = db.pinglun # 使用test_set集合,没有则自动创建
#插入数据(insert插入一个列表多条数据不用遍历,效率高, save需要遍历列表,一个个插入)
#1/insert方式
pinglunDict = {
'username':'小红',
'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg',
'content': '王思聪吃热狗又出周边了!这次是捣蒜神器,想要[doge] ',
'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'],
'zanNum':0
}
# pinglun.insert(pinglunDict)
#2/save方式
# pinglun.save(pinglunDict)
#添加多条数据到集合中
pinglunList = [
{
'username': '小李',
'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg',
'content': '王思聪吃热狗又出周边了!这次是捣蒜神器,想要[doge] ',
'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'],
'zanNum':0
},
{
'username': '小黑',
'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg',
'content': '王思聪吃热狗又出周边了!这次是捣蒜神器,想要[doge] ',
'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'],
'zanNum':0
},
{
'username': '小花',
'headerimg': 'https://tvax3.sinaimg.cn/crop.0.0.750.750.180/006758Pyly8fg6x9s2jhtj30ku0ku74m.jpg',
'content': '王思聪吃热狗又出周边了!这次是捣蒜神器,想要[doge] ',
'contentimg': ['https://wx4.sinaimg.cn/mw690/006758Pyly1fx0etbf8f0j30yi1hwwwl.jpg', 'https://wx3.sinaimg.cn/mw690/006758Pyly1fx0etbpdnbj30k00qote5.jpg', 'https://wx1.sinaimg.cn/mw690/006758Pyly1fx0etbwqp2j30k00qo796.jpg'],
'zanNum':0
}
]
# pinglun.insert(pinglunList)
#或
# for item in pinglunList:
# pinglun.save(item)
#更新数据
# pinglun.update({'username':'小花'},{'$set':{'zanNum':1}},multi=True,upsert=True)
# my_set.update(
# < query > , # 查询条件
# < update > , # update的对象和一些更新的操作符
# {
# upsert: < boolean >, # 如果不存在update的记录,是否插入
# multi: < boolean > , # 可选,mongodb 默认是false,只更新找到的第一条记录
# }
# )
# 把上面插入的数据内的age改为20
# #删除某个文档
# pinglun.remove({查找语句})
# pinglun.remove({'username': '小李'})
# #删除整条记录
# id = my_set.find_one({"name": "zhangsan"})["_id"]
#删除name=lisi的某个id的记录
# pinglunimg = pinglun.find_one({'username':'小黑'})['_id']
# print(pinglun.remove(pinglunimg))
# #删除集合里的所有记录
# pinglun.remove()
#查找具体某条信息
#语法:find_one({条件key:条件value})
# result = pinglun.find_one({'username':'小黑'})
# result = pinglun.find({'username':'小黑','zanNum':0})
# result = pinglun.find().count()
# print(result)
# #查询,大于$gt,大于等于$gte,小于$lt,小于等于$lte,不等于$ne
# result = pinglun.find_one({
# 'zanNum':{'$ne':0}
# })
# print(result)
# pinglun.update({'username':'小花'},{'$set':{'zanNum':1}})
#在原基础上进行增加
# pinglun.update({'username': '小花'}, {'$inc': {'zanNum': 1}})
# #and条件,》db.col.find({key1:value1, key2:value2}).
# result = pinglun.find_one({
# 'zanNum': {'$lt': 50},
# 'username':'小花'
# })
# print(result)
# #OR 条件
# result = pinglun.find_one({
# '$or':[
# {'zanNum':0},
# {'zanNum':2}
# ]
# })
# print(result)
# # >db.col.find(
# # {$or: [
# # {key1: value1}, {key2: value2}
# # ]
# # }
# # )
# #limit()方法接受一个数字参数,该参数指定从MongoDB中读取的记录条数。
# #skip()方法来跳过指定数量的数据,skip方法同样接受一个数字参数作为跳过的记录条数。
# # count统计数目
# #sort排序
# #pymongo.ASCENDING 1
# #pymongo.DESCENDING -1
# # find().sort((("age", pymongo.ASCENDING), ("high", pymongo.ASCENDING)))
# #正则表达式查询
# # find({'name': {'$regex': r'.*wei.*'}})