# authMechanism传输协议, # authSource认证库,管理员须要对admin作认证,才能操做其余db # use_db, use_col,操做数据的库和集合 def db_connected(db='news_spider', col=None,): uri = "mongodb://root:gtl1023@192.168.1.200/?authSource=admin&authMechanism=SCRAM-SHA-1" client = MongoClient(uri) use_db = client[db] if col is not None: use_col = use_db[col] return use_col return use_db
1, 查库名mysql
db = db_connected() for i in db.collection_names():print(i)
2, 查集合名(至关于mysql中的表)sql
db = MongoClient(uri) for i in db.list_database_names():print(i)
3, 查数据mongodb
全部数据 col = db_connected(col='test') for i in col.find(): print(i)
4,指定字段查询(显示指定的key-value,将要显示的key设置为1)数据库
for i in col.find({},{'news_time': 1, 'news_link': 1, 'news_author' : 1, 'news_source':1}): print(i)
5,查找条目(返回符合条件的整条数据)ide
myquery = {'news_time': '2018-07-23'} for i in col.find(myquery): print(i)
6, 正则查询code
myquery = {'news_title': { '$regex': '^EOS'}} #查询全部标题以EOS开始的新闻 for i in col.find(myquery): print(i)
7, 返回结果限制(若是条目太多,能够屡次返回,每次限制多少条)排序
myquery = {'news_title': { '$regex': '^EOS'}} for i in col.find(myquery).limit(2): print(i)
1, 插入单条数据,insert_one方法会返回一个值 对应数据库中的_idit
test_data = {'name':'tom', 'job': 'ops'} col = db_connected(col='test') res = col.insert_one(test_data) print(res.inserted_id)
2, 插入多条数据io
test_list = [{'name':'tom', 'job': 'ops'},{'name':'jerry', 'job': 'dev'}] col = db_connected(col='test') res = col.insert_many(test_list) print(res.inserted_ids)
3, 插入指定idtest
est_list = [{'_id':100, 'name':'tom', 'job': 'ops'},{'_id':99, 'name':'jerry', 'job': 'dev'}] col = db_connected(col='test') res = col.insert_many(test_list) print(res.inserted_ids)
1, 修改单条(默认修改找到的第一条)
col = db_connected(col='test') myquery = {'name':'tom'} new_val = {'$set':{'name':'tomson'}} col.update_one(myquery,new_val) for i in col.find():print(i)
2, 修改全部符合条件的值
col = db_connected(col='test') myquery = {'name':'tom'} new_val = {'$set':{'name':'tomson'}} col.update_many(myquery,new_val) for i in col.find():print(i)
col = db_connected(col='test') for i in col.find().sort('name', -1):print(i)
1, 删除指定单条
col = db_connected(col='test') myquery = {'job':'dev'} col.delete_one(myquery) for i in col.find():print(i)
2, 删除多条
col = db_connected(col='test') myquery = {'job':'ops'} col.delete_many(myquery) for i in col.find():print(i)
3, 删除集合中全部数据
col = db_connected(col='test') col.delete_many({}) for i in col.find():print(i)
4, 删除集合自己
col = db_connected(col='test') col.drop() db = db_connected() for i in db.collection_names():print(i)