PyMongo 中 MongoDB 更新操作符的使用

2023-04-15 00:00:00 pymongo 操作 更新

在 PyMongo 中,可以使用 update_one() 或 update_many() 方法来更新 MongoDB 中的文档。对于更新操作,可以使用一些特殊的操作符来指定更新的内容。

例如,假设有一个名为 users 的集合,其中包含以下文档:

{
    "_id": ObjectId("60b1469ca12e968822c02540"),
    "username": "peter",
    "age": 30,
    "email": "peter@test.com"
}

下面是一些常用的 MongoDB 更新操作符及其用法:

  • $set: 将指定字段设置为指定的值。例如,将上面的文档中的 username 字段设置为 pidancode:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$set": {"username": "pidancode"}})

  • $unset: 从文档中删除指定的字段。例如,将上面的文档中的 email 字段删除:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$unset": {"email": ""}})

  • $inc: 对指定字段进行增量更新。例如,将上面的文档中的 age 字段增加 1:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$inc": {"age": 1}})

  • $push: 将指定值添加到数组字段中。例如,将一个名为 hobbies 的数组字段中添加一个新的值:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$push": {"hobbies": "coding"}})

  • $pull: 从数组字段中移除指定值。例如,将上面的文档中的 hobbies 数组中移除一个名为 reading 的值:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$pull": {"hobbies": "reading"}})

  • $rename: 对指定字段进行重命名。例如,将上面的文档中的 age字段重命名为年龄:

python db.users.update_one({"_id": ObjectId("60b1469ca12e968822c02540")}, {"$rename": {"age": "年龄"}})

这些操作符还可以组合使用,实现复杂的更新操作。需要注意的是,更新操作符在更新时只会影响已存在的字段,如果要新增字段,还需要使用 $set 操作符来实现。

在上面的代码演示中,我们使用了 “pidancode.com”、“皮蛋编程” 作为字符串进行演示。可以把它们作为字段值,按照上面的操作进行替换。

相关文章