#coding=utf-8
import pymongo
import requests
settings = {
"ip": 'localhost', #ip
"port": 27017, #端口
"db_name": "firstmysql", #数据库名字
"set_name": "test_set" #集合名字
}
class mongo():
def __init__(self):
#创建mongo引擎
self.mongo = pymongo.MongoClient(host=settings['ip'], port=settings['port'])
def parse(self):
#连接数据库,如果firstmysql不存在,则自动创建
db = self.mongo[settings['db_name']]
#使用test_set集合,没有则自动创建
my_set = db[settings['set_name']]
###########################################################################
#插入数据
# my_set.insert({"name": "zhangsan", "age": 18})
# my_set.save({"name": "zhangsan", "age": 18})
# 添加多条数据到集合中
# users = [{"name": "zhangsan", "age": 18}, {"name": "lisi", "age": 20}]
# my_set.insert(users)
# my_set.save(users)
###########################################################################
# 查询全部
# for i in my_set.find():
# print(i)
# 查询name=zhangsan的
# for i in my_set.find({"name": "zhangsan"}):
# print(i)
#查询一条
# print(my_set.find_one({"name": "zhangsan"}))
###########################################################################
#更新数据
# my_set.update({"name": "zhangsan"}, {'$set': {"age": 20}})
###########################################################################
# 删除name=lisi的全部记录
# my_set.remove({'name': 'zhangsan'})
# 删除name=lisi的某个id的记录
# id = my_set.find_one({"name": "zhangsan"})["_id"]
# my_set.remove(id)
# 删除集合里的所有记录
# db.users.remove()
###########################################################################
# 条件查询
# (>) 大于 - $gt
# (<) 小于 - $lt
# (>=) 大于等于 - $gte
# (<= ) 小于等于 - $lte
# 例:查询集合中age大于25的所有记录
# for i in my_set.find({"age": {"$gt": 10}}):
# print(i)
###########################################################################
# 排序
# 在MongoDB中使用sort()方法对数据进行排序,
# sort()方法可以通过参数指定排序的字段,
# 并使用1和-1来指定排序的方式,其中1为升序,-1为降序。
# for i in my_set.find().sort([("age", -1)]):
# print(i)
###########################################################################
# limit和skip
# limit()方法用来读取指定数量的数据
# skip()方法用来跳过指定数量的数据
# 下面表示跳过两条数据后读取6条
# for i in my_set.find().skip(1).limit(6):
# print(i)
# IN
# 找出age是20、30、35的数据,不存返回空
# for i in my_set.find({"age": {"$in": (20, 35)}}):
# print(i)
# OR
# 找出age是20或35的记录
# for i in my_set.find({"$or": [{"age": 20}, {"age": 35}]}):
# print(i)
# OR
# 找出age是20或35的记录
# for i in my_set.find({"$or": [{"age": 20}, {"age": 35}]}):
# print(i)
###########################################################################
#程序入口
if __name__ == '__main__':
db = mongo()
db.parse()
网友评论