pymongo

cava原创notebook爬虫技术MongoDB大约 2 分钟

MongoDB-pymongo

导入库 import pymongo

1. 连接数据库

client=pymongo.MongoClient(host="localhost",port=27017)
client=pymongo.MongoClient('mongodb://localhost:27017/')

2. 指定数据库

不存在该数据库会自动创建

db=client.first
db=client['first']

3. 指定集合(数据表)

collections=db.info
collections=db['info']

4. 插入数据

info={
    'id':'123',
    'name':'xiaoyi',
    'birth':'1027',
     'sex':'girl'
}
result=collections.insert_one(info)
print(result)

4.1 批量插入数据(insert_one)

 for num in range(1,501):
     info_second = {
         'name': faker.name(),
         'email': faker.email(),
         'post': faker.postcode(),
     }
     collections.insert_one(info_second)

4.2 批量插入数据(insert_many)

result=collections.insert_many([info,info_student])

new_list=[]
for i in range(1,501):
     daylist = {
         'name': faker.name(),
         'email': faker.email(),
         'post': faker.postcode(),
     }
     new_list.append(daylist)
 collections.insert_many(new_list)

5. 查询数据

from bson.objectid import ObjectId

result=collections.find_one({"name":"wewe"})
#获取所有xiaoyi的信息
result2=collections.find({"name":"xiaoyi"})
#查询不存在的id会返回None
result3=collections.find_one({"_id":ObjectId("63b4dee4d36d58d5a24b4172")})

6. 查询数据范围(int)

image-20230105010554145
result=collections.find_one({"birth":{"$gt":8888}})
result=collections.find_one({"birth":{"$in":[8888,20000]}})
result=collections.find_one({"birth":{"$lt":10000}})
result=collections.find_one({"birth":{"$lte":8888##}})

7. 查询数据范围(各类属性)

image-20230105235613406
result=collections.find_one({"name":{"$regex":"^h.*"}})
result=collections.find_one({"birth":{"$type":"int"}})
result=collections.find_one({"name":{"$exists":True}})
print(result)

8. 统计

counts=collections.count_documents({"sex":{"$ne":"girl"}})
print(counts)
result=collections.find({"sex":{"$ne":"girl"}})
num=0
for i in result:
    print(i)
    num+=1
print(num)

9.排序

字符首字母大小/字符串大小

result=collections.find().sort("birth",pymongo.ASCENDING)#升序
result=collections.find().sort("name",pymongo.DESCENDING)#降序
for i in result:
    print(i)

10. 偏移

result=collections.find().sort("birth",pymongo.ASCENDING).skip(2)
跳过前两条数据,从第三条开始获取
result=collections.find().sort("birth",pymongo.ASCENDING).skip(2).limit(2)
跳过前两条,且只往后获取2for i in result:
    print(i)

11.数据更新update $set

condition={"name":"mike"}
student=collections.find_one(condition)
student["birth"]=24
result=collections.update_one(condition,{"$set":student})
print(result)

12. 指定某个数据增加

condition={"birth":{"$gt":7}}
result=collections.update_one(condition,{"$inc":{"birth":4}})
result=collections.update_many(condition,{"$inc":{"birth":4}})
print(result)

13. 数据删减

condition={"birth":{"$gt":30}}
result=collections.delete_one(condition)
result=collections.delete_many(condition)
上次编辑于:
贡献者: augwewe,AndersonHJB
你认为这篇文章怎么样?
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
  • 0
评论
  • 按正序
  • 按倒序
  • 按热度
Powered by Waline v2.14.7