python学习:pymongo/mongodb cheatsheet

一个操作 mongodb 的库
更新于: 2024-03-18 18:06:18

安装

提前安装好 mongodb 或者运行好 docker-mongodb

pip install pymongo

cheatsheet

功能代码
连接,创建表
import pymongo

# mongodb 连接数据库
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["spider_gter"]

# col_schools 表
col_schools = db["schools"]
col_schools.create_index("school_id", unique=True)
mongodb Console(query)
// 查换info字段,值为 NOT_FOUND 的值
db.schools.find({ info: { $eq: 'NOT_FOUND'}}).count()

// 查找 info 存在的个数
db.schools.find({ info: { $exists: true}}).count() 

// 查询不重复的 school_id
db.offers.distinct("school_id")
mongodb Console(delete)
# 删除所有 schools 中 info 字段为 NOT_FOUND 的数据
db.schools.deleteMany({ "info": "NOT_FOUND" })
添加 is_crawled 字段
# 给 offers 表添加 is_crawled 字段
db.offers.updateMany({}, { $set: { "is_crawled": false } })
删除字段
db.offer_details.update({}, { $unset: { undergraduate : 1 } }, false, true);
字段值替换
db.profile_details.updateMany(
   {},
   [{ $set: { "grouped": { $replaceAll: { input: "$grouped", find: "-", replacement: "_" } } }}]
)
字符串 id 转 int
db.nces_posts.find({}).forEach(function(doc) {
    db.collectionName.updateOne(
        { "_id": doc._id },
        { "$set": { "data_id": NumberInt(doc.data_id) } }
    );
})

参考