MongoDB 提供了几种修改数据的方法:
db.collection.updateOne(
<filter>, // 查询条件
<update>, // 更新操作
{
upsert: <boolean>, // 如果不存在是否插入新文档
writeConcern: <document> // 写入关注级别
}
)
示例:
// 将users集合中name为"John"的第一个文档的age改为30
db.users.updateOne(
{ name: "John" },
{ $set: { age: 30 } }
)
db.collection.updateMany(
<filter>,
<update>,
{
upsert: <boolean>,
writeConcern: <document>
}
)
示例:
// 将所有status为"active"的用户的lastLogin更新为当前时间
db.users.updateMany(
{ status: "active" },
{ $set: { lastLogin: new Date() } }
)
db.collection.replaceOne(
<filter>,
<replacement>,
{
upsert: <boolean>,
writeConcern: <document>
}
)
示例:
// 替换第一个name为"John"的文档
db.users.replaceOne(
{ name: "John" },
{ name: "John", age: 35, status: "active" }
)
$set
: 设置字段值$unset
: 删除字段$inc
: 增加数值$push
: 向数组添加元素$pull
: 从数组移除元素$rename
: 重命名字段MongoDB 提供了几种删除数据的方法:
db.collection.deleteOne(
<filter>,
{
writeConcern: <document>
}
)
示例:
// 删除第一个status为"inactive"的用户
db.users.deleteOne({ status: "inactive" })
db.collection.deleteMany(
<filter>,
{
writeConcern: <document>
}
)
示例:
// 删除所有status为"inactive"的用户
db.users.deleteMany({ status: "inactive" })
db.collection.remove(
<query>,
{
justOne: <boolean>, // 是否只删除一个文档
writeConcern: <document>
}
)
示例:
// 删除所有status为"inactive"的用户
db.users.remove({ status: "inactive" })
// 只删除一个status为"inactive"的用户
db.users.remove({ status: "inactive" }, { justOne: true })
db.collection.drop() // 删除集合及其索引
示例:
db.tempData.drop() // 删除tempData集合
{ writeConcern: { w: "majority" } }
确保数据已写入大多数节点find()
确认要修改/删除的文档