使用前必须保证两点:
a 电脑上安装了MongoDB数据库、python安装了pymongo包。
b 打开mongod.exe
1 创建客户端
client = pymongo.MongoClient('localhost', 27017)
#pymongo.MongoClient()不带参数时,默认是本地客户端'localhost': 27017
2 关联数据库
关联数据库有两种方式 创建数据库 和 连接已有数据库:
创建数据库 runoob:
db = client['runoob']
连接已有数据库 runooc
db = client.runooc
3 关联集合
关联集合有两种方式 创建集合 和 连接已有集合:
创建集合 run:
collection = db['run']
连接已有集合 runo
collection = db.runo
4 增
#插入单条数据
collection.insert({'name':'lili', 'age':24})
#插入多条数据
collection.insert({'name':'lili', 'age':24}, {'location':[123,456], 'dad':'me'})
lst = [{'name':'lili', 'age':24}, {'location':[123,456], 'dad':'me'}]
collection.insert(lst)
#变量式
doc = {
'name':'lili',
'age':24,
'location':[123,456],
'dad':'me'
}
collection.insert(doc)
5 查
#单一条件查找
for i in collection.find({'age':24}):
print i
#&查找
for i in collection.find({'age':24, 'name':'lili'}):
print i
#or查找
for i in collection.find({'$or':[{'age':24}, {'name':28}]}):
print i
# & 和 or 一起用
collection.find({"likes": {'$gt':50}, '$or': [{"age": 24}, {"age": 28}]}).
#查一个具体对象
collection.find_one({'age':24}) #返回值是一个具体的对象
6 改
#更新一条数据
collection.update({'age':24}, {'$set':{'age':28}}) #用'age':28替换发现的第一条'age':24
#更新对条记录
collection.update({'age':24}, {'$set':{'age':28}}, multi=True) #用'age':28替换所有'age':24
7 删
#删掉所有{'age':28}的数据
collection.remove({'age':28})
#删除数据集
collection.drop()
8 其他
排序:在MongoDB中使用sort()方法对数据进行排序,sort()方法可以通过参数指定排序的字段,并使用 1 和 -1 来指定排序的方式,其中 1 为升序,-1为降序。
for i in collection.find().sort([("age",1)]):
print(i)
limit和skip:
#limit()方法用来读取指定数量的数据
#skip()方法用来跳过指定数量的数据
#下面表示跳过两条数据后读取6条
for i in my_set.find().skip(2).limit(6):
print(i)
mongodb的条件操作符:
# (>) 大于 - $gt
# (<) 小于 - $lt
# (>=) 大于等于 - $gte
# (<= ) 小于等于 - $lte
#例:查询集合中age大于25的所有记录
for i in my_set.find({"age":{"$gt":25}}):
print(i)
type(判断类型)
#找出name的类型是String的 只会找出name是字符串类型的
for i in my_set.find({'name':{'$type':2}}):
print(i)
type 对照表
Double 1
String 2
Object 3
Array 4
Binary data 5
Undefined 6 已废弃
Object id 7
Boolean 8
Date 9
Null 10
Regular Expression 11
JavaScript 13
Symbol 14
JavaScript (with scope) 15
32-bit integer 16
Timestamp 17
64-bit integer 18
Min key 255 Query with -1.
Max key 127