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

最后

不知道你们用的什么环境,我一般都是用的Python3.6环境和pycharm解释器,没有软件,或者没有资料,没人解答问题,都可以免费领取(包括今天的代码),过几天我还会做个视频教程出来,有需要也可以领取~

给大家准备的学习资料包括但不限于:

Python 环境、pycharm编辑器/永久激活/翻译插件

python 零基础视频教程

Python 界面开发实战教程

Python 爬虫实战教程

Python 数据分析实战教程

python 游戏开发实战教程

Python 电子书100本

Python 学习路线规划

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

请添加图片描述

🍹欢迎各路大佬来到小啾主页指点☀️

博客主页:云雀编程小窝 🌹꧔ꦿ

🌹꧔ꦿ点赞 + 关注 + 收藏

上期传送门:

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}


最后

🍅 硬核资料:关注即可领取PPT模板、简历模板、行业经典书籍PDF。
🍅 技术互助:技术群大佬指点迷津,你的问题可能不是问题,求资源在群里喊一声。
🍅 面试题库:由技术群里的小伙伴们共同投稿,热乎的大厂面试真题,持续更新中。
🍅 知识体系:含编程语言、算法、大数据生态圈组件(Mysql、Hive、Spark、Flink)、数据仓库、Python、前端等等。

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值