# /PycharmProjects/carspider
# -*- coding: utf-8 -*-
# @Time : 19-2-15 下午4:52
# @Author : hqian
# @File : 本地mongodb练习.py
# @Software: PyCharm
import sys
import pymongo
reload(sys)
sys.setdefaultencoding('utf-8')
# mongodb 链接
# mongodb://[username:password@]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]
# db = MongoClient('mongodb://账号:密码@IP:密码/库名')
client = pymongo.MongoClient('127.0.0.1', 27017)
db = client['research']
col = db['Anjuke']
# 建立索引
col.create_index([
("first_class", pymongo.ASCENDING),
], background=True)
# 查看索引
col.getIndexes()
# 删除所有索引
col.dropIndexes()
# 删除指定索引
col.dropIndex("索引名称")
# 插入一条数据
col.insert_one({'test1':1,'test2':2})
#插入多条数据
col.insert_many([{'test1':5},{'test1':6}])
# 更新一条数据,upsert=False只更新查询到的第一条数据,True全部更新
col.update({'test1':1},{'$set':{"test1":3}},upsert=False)
# 更新数据,True有则更新,无则插入
col.update({'test1':2},{'$set':{"test1":3}},upsert=True)
# 查询
col.find({},{"title":1,"_id":0}).limit(2)
# 跳级查询
col.find({},{"title":1,"_id":0}).limit(1).skip(1)
# 排序
col.find({},{"title":1,"_id":0}).sort({"_id":-1})
'''
skip(), limilt(), sort()三个放在一起执行的时候,
执行的顺序是先 sort(), 然后是 skip(),最后是显示的 limit()。
'''
# 正则表达式 $regex
db.getCollection('keyun_car').find({"status" : 3,'track':{$regex:"HTTP 599"}},{"url":1,'_id':0})
# 获取当前数据库下所有的collection名称
# pymongo 3.6 collection_names(include_system_collections=True, session=None)
# pymongo 3.7 list_collection_names(session=None)
db.collection_names(include_system_collections=True,session=None)