pymongo的基本操作和使用--练习
1.将MongoDB注册到电脑中
安装好MongoDB之后,如何使用MongoDB呢?来到安装目录D:/MongoDB/bin会有如下列表:
其中,mongod.exe是服务端,mongo.exe是客服端,要使用mongo需要依次双击打开服务端和客服端,如下:
这个时候,我们才能够使用mongo,很显然,这样会特别麻烦,因为每次使用都需要启动一下mongo的服务。因此,可以考虑将启动mongo的服务交给电脑操作,以后每次我们只需要在命令行中输入mongo来启动就可以了。那么,如何将服务注册到电脑中呢?
安装好mongo后,在命令行中输入:D:\MongoDB\mongd.exe --config D:\MongoDB\mongod.cfg --install 就可以将服务注册到计算机中。
注册服务后,启动mongo,输入:net start MongoDB,结果如下:
此时,输入mongo就可以使用了:
2.常用操作
# coding = utf-8 # 1.将MongoDB注册到电脑中 # 2.基本命令, 以下命令均在命令行窗口中输入 ''' use dbname 切换数据库,如果该库不存在则创建该数据库 如果没有数据,会回滚 show databases 查看所有数据库,也可简写为show dbs db.dropDatabase() 删除当前数据库 db.test.insert({ }) 插入数据, test不存在会自动创建 db.test.save({ }) 当没有出现id字段时,会保存数据,如果出现了 已有id字段,会替换数据 db.test.update({ }) 默认只更新一条文档,如果需要多条,需要制定multi参数 db.test.find({ 可指定条件 }).limit(5) 默认返回20条数据, 可以制定limit参数 db.test.remove({'class':'爬虫'}, {justOne:true})删除1条,不给删除所有符合要求的 db.test.drop() 删除集合 例: use db_tet 进入db_test数据库(如果没有db_test就会创建db_test库) db.db_test.insert({students':30}) 在db_test下创建一个集合,相当于关系型数据库中的表 输入: show tables 就可以显示db_test下所有集合了 ''' # 3.操作符 ''' 比较操作符: $eq 等于 $gt 大于 $gte 大于等于 $lt 小于 $lte 小于等于 $ne 不等于 $in 匹配数组中的任意值 逻辑操作符 $or 或 $and $not $nor +表达式 查询与任意字段都不匹配的数据,匹配除了表达式中的值以外的 更新操作符 $set 只更新文档中的某一个字段,不是全部替换 $inc 自增(减) 让对应的某一个字段增加(减)一次 $mul 乘法 $rename 重命名文档中指定的字段名 增删改查 插入数据:insert或save, 不给id时,会默认分配一个id 修改数据:update(默认修改一条数据,修改参数multi:true就会修改全部数据)或save, 查找数据: find默认查找20条 findOne查找一条 删除数据: remove 例: db.db_test.find() 显示数据库中所有数据 db.db_test.find({'students':{$eq:30}} 查找student=30的数据 db.db_test.find({'students':{$gt:30}} 查找student>30的数据 db.db_test.find({'students':{$gte:30}} 查找student>=30的数据 db.db_test.find({'students':{$in:[50, 60, 80]}}) 匹配students在50,60,80中的数据 db.db_test.find({$or:['students':50], ['class':30]}) 匹配students为50或class为30的数据 db.db_test.find({'students':50, 'class':30}) 匹配students为50且class为30的数据 db.db_test.update({'students':50}, {$set:{'students':55}}) 将students为50更新为55,只更新这一个字段,其他字段不变 db.db_test.save({'students':50, 'class':'spider'}) # 插入新数据,因为不指定id,会默认分配一个id 当save指定和某一数据相同id时,就是修改数据了 # 指定修改一个字段students,修改所有值的stuednts56为60 db.db_test.update({'students':56}, {$set{'students':60}}, {multi:true}}) db.db_test.find({'students':{$gte:66}}) 查找students>=66的数据 db.db_test.remove({}) 默认删除集合中所有文档 db.db_test.remove({'students':50}) 删除所有students为50的数据 ''' # 4.pymongo操作 # pymongo安装 # pip install pymongo # import pymongo # 连接mongo,可添加参数连接远程mongo数据库 conn = pymongo.MongoClient() db = conn['mongo_test'] # 选择对应数据库 collection = db['test'] # 选择数据库下的集合 # 增删改查 # collection.insert({'a': 1, 'b': 2}) # collection.insert_many([{'a': 1, 'b': 2}, {'a': 1, 'b': 2}]) # collection.remove({ }) # collection.delete_many() # collection.update({'a':1}, {'a':'aaa'}) # collection.update({'a':1}, {'$set':{'a':'aaa'}}) # # collection.find({}) # mysql连接 # import pymysql # # conn = pymysql.connect( # host='*******', # user='**', # password='***', # charset='utf8', # database='***' # ) # # cursor =conn.cursor() # # create_table = '''create table if not exists i( # id INT PRIMARY KEY auto_increment, # username VARCHAR (20) not NULL , # number INT, # attentions INT, # comments INT, # constellation VARCHAR (10), # occupation VARCHAR (10), # address VARCHAR (20) # ) # ''' # cursor.execute(create_table)