0


mongodb增、删、改、查快速上手

文章目录

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()


标签: mongodb

本文转载自: https://blog.csdn.net/weixin_48964486/article/details/123589923
版权归原作者 侯小啾 所有, 如有侵权,请联系我们删除。

“mongodb增、删、改、查快速上手”的评论:

还没有评论