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

  • 2.4 条件查询

    • 2.4.1 比较运算符
  • 2.4.2 范围运算符

  • 2.4.3 逻辑运算符

  • 2.4.4 查询示例

  • 2.5对查询结果操作

    • 2.5.1 help()
  • 2.5.2pretty() 结果格式化

  • 2.5.3 count() 结果计数

  • 2.5.4 limit() 数量限制

  • 2.5.5skip() 跳过前几个

  • 2.5.6sort() 排序

    • 升序
  • 降序

  • 2.6 映射

  • ③修改

    • 3.1 单个数据修改
    • 3.1.1 修改一整条数据
  • 3.1.2 修改一条数据中的某字段 $set

  • 3.2 批量修改 $set {multi:true}

    • 3.2.1 将某字段为x的数据的某字段值改为y
  • 3.3 {upsert:true} 有则修改,无则插入

  • 3.4$inc 增量修改

  • ④删除

    • 4.1条件删除
    • 删除符合查询条件的所有数据
  • 删除符合查询条件的第一条数据

  • 4.2删除所有数据

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 比较运算符

| 比较关系 | 比较运算符 | 描述 |

| — | — | — |

| 等于 | $eq | equal |

| 不等于 | $ne | not equal |

| 小于 | $lt | less than |

| 小于等于 | $lte | less than equal |

| 大于 | $gt | greater than |

| 大于等于 | $gte | greater 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:{ l t : 600 , lt:600, 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({KaTeX parse error: Undefined control sequence: \[ at position 5: and:\̲[̲{city:{in:[“cityA”,“cityC”]}},{num:{$gt:600}}]})

在这里插入图片描述

查询city在[“cityA”,“cityC”] num大于600的

db.collection002.find({KaTeX parse error: Undefined control sequence: \[ at position 4: 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})

在这里插入图片描述


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值