文档操作
约 480 字大约 2 分钟
2025-03-15
一、插入
- insertOne():
db.inventory.insertOne({ item: "paper" })
- insertMany(): 插入多个文档
db.inventory.insertMany({ item: "paper" })
- insert(): 插入单个或多个文档 弃用
db.inventory.insert({ item: "paper" })
- save(): 插入或更新文档,当传入数据主键
_id
的时候为更新 弃用
db.inventory.save({ item: "paper" })
二、删除
- deleteOne(): 删除符合条件的第一个文档
db.inventory.deleteOne({ item: "paper" })
- deleteMany(): 删除符合条件的所有文档
db.inventory.deleteMany({ item: "paper" })
- remove(): 删除符合条件的所有文档 弃用
db.inventory.remove({ item: "paper" })
三、更新
- updateOne(): 更新匹配过滤器的单个文档。
db.inventory.updateOne(
{ item: "paper" },
{
$set: { "size.uom": "cm", status: "P" },
$currentDate: { lastModified: true }
}
)
- updateMany(): 更新匹配到的所有文档
db.inventory.updateMany(
{ "qty": { $lt: 50 } },
{
$set: { "size.uom": "in", status: "P" },
$currentDate: { lastModified: true }
}
)
- update(): 更新匹配到的所有文档,
db.collection.update(
<query>, # 查询条件
<update>, # 更新内容
{
upsert: <boolean>, # 意思为存在即更新,不存在即插入
multi: <boolean>, # 是否更新匹配到的全部记录
writeConcern: <document> # 异常级别
}
)
注意 $set
假设这条数据 { name: "张三", age: 30 }
分别执行以下两条语句:
db.collection.update({name: "张三"}, {age: 40})
## 执行完:{ age: 40 }
db.collection.update({name: "张三"}, { $set: {age: 40} })
## 执行完:{ name: "张三", age: 40 }
- replaceOne(): 方法用于替换匹配过滤器的单个文档,新的文档将完全替换旧的文档。
语法:db.collection.replaceOne(filter, replacement, options)
db.myCollection.replaceOne(
{ name: "Bob" }, // 过滤条件
{ name: "Bob", age: 31 } // 新文档
);
四、查询
1、findOne()
只返回一个查询结果,使用参考find()
方法。
2、find()
查询多条结果,可以结合指定数据和操作符号组合查询条件查询
查询全部
db.inventory.find( {} ) # 等效于 SELECT * FROM inventory
查询相等条件
以下示例从
inventory
中选择集合所有status
等于"D"
的文档db.inventory.find( { status: "D" } ) # 等效于 SELECT * FROM inventory WHERE status = "D"
更新日志
2025/8/24 08:17
查看所有更新日志
e7112
-1于