文章目录
mongodb增、删、改、查快速上手
ʚʕ̯•͡˔•̯᷅ʔɞ
🍹欢迎各路大佬来到小啾主页指点☀️
✨博客主页:云雀编程小窝 🌹꧔ꦿ
🌹꧔ꦿ点赞 + 关注 + 收藏✨上期传送门:
mongoDB数据库基本命令(操作数据库和集合)
首先创建一个名为test的数据库并使用之
use test
①增加
- 添加一条数据使用**insertOne(),添加多条数据使用insertMany()**。
- 添加一条或多条数据也可以都使用**insert()**。(一种可能会被淘汰的方法,建议使用前者为主流的方法)
- 此外,也可以使用save来插入数据。
1.1添加一条数据
添加一条数据
db.collection001.insertOne({name:“张三”})
查看
db.collection001.find()
插入成功。
1.2添加多条数据
首先定义一个列表,里边存放着多条数据
d = [{name:“侯小啾”,age:18},{name:“Lihua”,id:‘003’}]
添加多条数据,在insertMany()中传入一个列表
db.collection001.insertMany(d)
查看之
使用insert插入一条和多条数据
db.collection001.insert({name:“Tom”,class:“5”})
db.collection001.insert([{name:“小A”,age:21},{name:“xxx”}])
查看数据,已成功插入:
db.collection001.find()
1.3save()方法
- 当使用insert系列方法插入数据时,若指定"_id",如果插入的数据的"_id"相同,则会报错,即插入失败。
- 使用save时,若指定 “_id” , 如果"_id"不相同,则插入该数据; 如果“_id”相同,则更新该条数据。
插入一条和多条
db.collection001.save({name:“a1”})
db.collection001.save([{name:“b1”},{name:“c1”}])
插入相同id的数据,效果为修改数据
db.collection001.save({_id:ObjectId(“62353cc924f17f61f1ff3659”),name:“xxxxxxxxxxxxxxxxxxxxxxxxxx”})
db.collection001.find()
②查询
2.1准备数据
首先准备一组数据,放在集合collection002中
db.collection002.insertMany([{name:“Tom”,city:“cityA”,type:“aaa”,num:609},
{name : “allen”,city : “cityC”, type : “bbb”, num : 549},
{name : “jerry”,city : “cityA”, type : “bbb”, num : 593},
{name : “frank”,city : “cityB”, type : “aaa”, num : 657},
{name : “jack”,:,city : “cityC”, type : “aaa”, num : 620},
{name : “alice”,city : “cityB”, type : “ccc”, num : 584},
{name : “marry”,city : “cityA”, type : “bbb”, num : 599}
])
2.2查询第一条数据
db.collection002.findOne()
2.3查询所有数据
db.collection002.find()
2.4 条件查询
- 查询city值为cityB的:
db.collection002.find({city:“cityB”})
- 查询city值为"cityA"且type值为"bbb"的数据:
db.collection002.find({city:“cityA”,type:“bbb”})
2.4.1 比较运算符
比较关系比较运算符描述等于$eqequal不等于$nenot equal小于$ltless than小于等于$lteless than equal大于$gtgreater than大于等于$gtegreater than equal
2.4.2 范围运算符
in表示在范围中
nin 表示不在范围中
2.4.3 逻辑运算符
and 且
or 或
2.4.4 查询示例
查询num大于600的数据
db.collection002.find({num:{$gt:600}})
查询num大于550小于600的数据
db.collection002.find({num:{$lt:600,$gt:550}})
查询city为cityA的也可以这么写:
db.collection002.find({city:{$eq:“cityA”}})
查询city 在 [“cityA”,“cityC”] 中的:
db.collection002.find({city:{$in:[“cityA”,“cityC”]}})
查询city在[“cityA”,“cityC”] 且 num大于600的
db.collection002.find({$and:[{city:{$in:[“cityA”,“cityC”]}},{num:{$gt:600}}]})
查询city在[“cityA”,“cityC”] 或 num大于600的
db.collection002.find({$or:[{city:{$in:[“cityA”,“cityC”]}},{num:{$gt:600}}]})
2.5对查询结果操作
2.5.1 help()
可以对查询的结果能进行的简单的二次操作如下:
2.5.2pretty() 结果格式化
如prety,可以将打印结果格式化,即清晰地展现出来如下:
db.collection002.find().pretty()
2.5.3 count() 结果计数
db.collection002.find().count()
2.5.4 limit() 数量限制
以取出前两条为例
db.collection002.find().limit(2)
2.5.5skip() 跳过前几个
以跳过前两个为例
db.collection002.find().skip(2)
db.collection002.find().skip(2).limit(1)
则可以跳过前两个后取出第一个
- 其中skip() 的优先级高于 **limit()**,
故写成
db.collection002.find().limit(1).skip(2)
效果也是一样的。
2.5.6sort() 排序
升序
按num字段升序排列
db.collection002.find().sort({num:1})
降序
按num字段降序排列
db.collection002.find().sort({num:-1})
2.6 映射
关于find()的参数,第一个{ }括号内表示是筛选规则,第二个{ }括号内表示映射。
例如:
db.collection002.find({num:{$gt:550}},{name:1})
则表示取出num大于500的数据,只取name字段
效果如图所示:
其中"_id"字段是默认取出的。字段name后边写为1(只要不为0),表示取出该字段。如果写为0,则表示不取该值。
如,如果结果不想要"_id"字段:
db.collection002.find({num:{$gt:550}},{name:1,_id:0})
- 这里使用1来代表非零值(其他非零值也可以)。 还有一个重要的规则是,对于除了_id外的其他字段,使用映射时0和1不可以共存,否则会报错。 如只有1时,则取出标记为1的字段。只有0时,则取除了这些为0的字段之外的字段。
db.collection002.find({num:{$gt:550}},{city:0,_id:0})
③修改
3.1 单个数据修改
3.1.1 修改一整条数据
db.collection002.update({name:“Tom”},{name:“jim”})
3.1.2 修改一条数据中的某字段 $set
将name中的alice改为lucy
db.collection002.update({name:“alice”},{$set:{name:“lucy”}})
- 这种方式只能修改第一条与之匹配的数据,不能修改多条。
3.2 批量修改 $set {multi:true}
3.2.1 将某字段为x的数据的某字段值改为y
将此段city的值为cityA的数据,的字段city的值都改为"cityXXX"。
db.collection002.update({city:“cityA”},{$set:{city:“cityXXX”}},{multi:true})
将字段city值为cityB的数据,的字段type的值都改为ddd。
db.collection002.update({city:“cityB”},{$set:{type:“ddd”}},{multi:true})
3.3 {upsert:true} 有则修改,无则插入
db.collection002.update({type:“eee”},{type:“aaa”},{upsert:true})
如图,字段type值为aaa的数据没有匹配到,则插入了一条新的数据。
3.4$inc 增量修改
如,将lucy的num增加20
db.collection002.update({name:“lucy”},{$inc:{num:20}})
如,再将lucy的num减小5(使用负数即可)
db.collection002.update({name:“lucy”},{$inc:{num:-5}})
④删除
4.1条件删除
删除符合查询条件的所有数据
- 删除字段type的值为bbb的数据
db.collection002.remove({type:“bbb”})
删除符合查询条件的第一条数据
- 删除type为ddd的第一条数据
- {justOne:true}
db.collection002.remove({type:“ddd”},{justOne:true})
4.2删除所有数据
删除集合的所有数据
db.collection002.remove({})
必须传入一个{},不能什么都不传入。
删除集合
db.collection002.drop()
版权归原作者 侯小啾 所有, 如有侵权,请联系我们删除。