pymongo的基本操作和使用--练习

Posted 温良Miner

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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)

 

以上是关于pymongo的基本操作和使用--练习的主要内容,如果未能解决你的问题,请参考以下文章

Python练习册 第 0013 题: 用 Python 写一个爬图片的程序,爬 这个链接里的日本妹子图片 :-),(http://tieba.baidu.com/p/2166231880)(代码片段

pymongo的使用方法

100天精通Python(进阶篇)——第40天:pymongo操作MongoDB数据库基础+代码实战

pymongo和mongoengine安装和使用教程 包含常用命令行和代码示例 | pymongo and mongoengine tutorial on ubuntu 16.04

PyMongo 游标 batch_size

pymongo的操作