”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > SQL 已死?开始使用 mongoDB

SQL 已死?开始使用 mongoDB

发布于2024-08-05
浏览:504

SQL is Dead? Get Started with mongoDB

什么是 MongoDB:

MongoDB是一个非关系型数据库,这意味着数据存储为集合。

MongoDB 还支持 BSON(二进制 JSON),这是一种二进制编码形式的 JSON,允许使用其他数据类型,例如二进制、十进制、对象 ID 等。

MongoDB 有自己的查询语言,基于 JSON 和 JavaScript 语法,用于查询,MongoDB 是一个非关系数据库,这意味着数据存储为集合,每个文档代表一条记录,每个字段代表一个值。

安装 MongoDB?

登录后第一次登录您的 mongoDB 帐户,根据您的要求为您的数据库创建一个新集群。如果初学者想学习 mongoDB,mongoDB 还为他们提供免费集群。 :)

安装步骤:

包管理器安装:

  • 更新软件包列表:sudo apt update(对于基于 Debian 的系统)或等效命令。
  • 安装 MongoDB: sudo apt install -y mongodb-org (对于基于 Debian 的系统)或其他包管理器的等效命令。
  • 启动 MongoDB 服务: sudo systemctl start mongod。
  • 启用 MongoDB 在启动时启动: sudo systemctl enable mongod。

云安装(MongoDB Atlas):

  • 注册或登录 MongoDB Atlas。
  • 按照指导步骤创建集群。
  • 配置安全设置并连接您的应用程序。

(可选)安装 MongoDB Compass 或其他管理工具,以更轻松地进行数据库管理和可视化。

MongoDB 中的基本 CRUD?

首先,确保 MongoDB 已安装并正在运行。您可以使用 MongoDB shell 或 MongoDB 客户端(例如 MongoDB Compass)连接到 MongoDB。

在 MongoDB 中,数据库和集合是在首次存储数据时隐式创建的。要切换到特定数据库或显式创建一个数据库,请使用以下命令:(use mydatabase)

要将数据插入集合(相当于关系数据库中的表),请使用 insertOne() 或 insertMany() 方法:

// Insert a single document into a collection
db.users.insertOne({ name: "John Doe", age: 30, email: "[email protected]" });

// Insert multiple documents into a collection
db.users.insertMany([
    { name: "Jane Smith", age: 25, email: "[email protected]" },
    { name: "Michael Johnson", age: 40, email: "[email protected]" }
]);

阅读(查找文档)
要从集合中检索数据,请使用带有可选查询条件的 find() 方法:

// Find all documents in a collection
db.users.find();

// Find documents matching specific criteria (e.g., find users older than 35)
db.users.find({ age: { $gt: 35 } });

// Find a single document by its _id
db.users.findOne({ _id: ObjectId("insert-id-here") });

更新(更新文档)
要更新集合中的文档,请使用 updateOne() 或 updateMany() 方法:

// Update a single document matching a query
db.users.updateOne(
    { name: "John Doe" },
    { $set: { age: 31, email: "[email protected]" } }
);

// Update multiple documents matching a query
db.users.updateMany(
    { age: { $lt: 30 } },
    { $set: { status: "inactive" } }
);

删除(删除文档)
要从集合中删除文档,请使用deleteOne() 或deleteMany() 方法:

// Delete a single document matching a query
db.users.deleteOne({ name: "John Doe" });

// Delete multiple documents matching a query
db.users.deleteMany({ status: "inactive" });

使用 MongoDB 的优点:

  • 适用于架构和关系随时间变化的非结构化和动态数据。
  • MongoDB 提供了更大的简单性和敏捷性,因为它不需要预定义的模式,从而允许更灵活和更具表现力的数据模型。
  • 可扩展且高性能,它可以轻松管理大量不同的数据并将其分布在多个服务器上。

感谢您阅读这篇文章,了解更多类似内容请关注我的帐户,如果您在评论部分有建议,请告诉我。

版本声明 本文转载于:https://dev.to/nikhil27b/sql-is-dead-get-started-with-mongodb-4dc3?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 为什么使用Firefox后退按钮时JavaScript执行停止?
    为什么使用Firefox后退按钮时JavaScript执行停止?
    导航历史记录问题:JavaScript使用Firefox Back Back 此行为是由浏览器缓存JavaScript资源引起的。要解决此问题并确保在后续页面访问中执行脚本,Firefox用户应设置一个空功能。 警报'); }; alert('inline Alert')...
    编程 发布于2025-04-04
  • 在GO中构造SQL查询时,如何安全地加入文本和值?
    在GO中构造SQL查询时,如何安全地加入文本和值?
    在go中构造文本sql查询时,在go sql queries 中,在使用conting and contement和contement consem per时,尤其是在使用integer per当per当per时,per per per当per. [&​​&&&&&&&&&&&&&&&默元组方法在...
    编程 发布于2025-04-04
  • 如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    如何从PHP中的Unicode字符串中有效地产生对URL友好的sl。
    为有效的slug生成首先,该函数用指定的分隔符替换所有非字母或数字字符。此步骤可确保slug遵守URL惯例。随后,它采用ICONV函数将文本简化为us-ascii兼容格式,从而允许更广泛的字符集合兼容性。接下来,该函数使用正则表达式删除了不需要的字符,例如特殊字符和空格。此步骤可确保slug仅包含...
    编程 发布于2025-04-04
  • 如何使用不同数量列的联合数据库表?
    如何使用不同数量列的联合数据库表?
    合并列数不同的表 当尝试合并列数不同的数据库表时,可能会遇到挑战。一种直接的方法是在列数较少的表中,为缺失的列追加空值。 例如,考虑两个表,表 A 和表 B,其中表 A 的列数多于表 B。为了合并这些表,同时处理表 B 中缺失的列,请按照以下步骤操作: 确定表 B 中缺失的列,并将它们添加到表的末...
    编程 发布于2025-04-04
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    The Mystery of "Broken" Two-Phase Template Instantiation in Microsoft Visual C Problem Statement:Users commonly express concerns that Micro...
    编程 发布于2025-04-04
  • Android如何向PHP服务器发送POST数据?
    Android如何向PHP服务器发送POST数据?
    在android apache httpclient(已弃用) httpclient httpclient = new defaulthttpclient(); httppost httppost = new httppost(“ http://www.yoursite.com/script.p...
    编程 发布于2025-04-04
  • 如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    在java 通过Java通过Java运行命令命令可能很具有挑战性。尽管您可能会找到打开命令提示符的代码段,但他们通常缺乏更改目录并执行其他命令的能力。 solution:使用Java使用Java,使用processBuilder。这种方法允许您:启动一个过程,然后将其标准错误重定向到其标准输出。...
    编程 发布于2025-04-04
  • PHP阵列键值异常:了解07和08的好奇情况
    PHP阵列键值异常:了解07和08的好奇情况
    PHP数组键值问题,使用07&08 在给定数月的数组中,键值07和08呈现令人困惑的行为时,就会出现一个不寻常的问题。运行print_r($月份)返回意外结果:键“ 07”丢失,而键“ 08”分配给了9月的值。此问题源于PHP对领先零的解释。当一个数字带有0(例如07或08)的前缀时,PHP将...
    编程 发布于2025-04-04
  • 版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    版本5.6.5之前,使用current_timestamp与时间戳列的current_timestamp与时间戳列有什么限制?
    在时间戳列上使用current_timestamp或MySQL版本中的current_timestamp或在5.6.5 此限制源于遗留实现的关注,这些限制需要对当前的_timestamp功能进行特定的实现。 创建表`foo`( `Productid` int(10)unsigned not n...
    编程 发布于2025-04-04
  • 在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在C中的显式删除 在C中的动态内存分配时,开发人员通常会想知道是否需要手动调用“ delete”操作员在heap-exprogal exit exit上。本文深入研究了这个主题。 在C主函数中,使用了动态分配变量(HEAP内存)的指针。当应用程序退出时,此内存是否会自动发布?通常,是。但是,即使在这...
    编程 发布于2025-04-04
  • 如何使用替换指令在GO MOD中解析模块路径差异?
    如何使用替换指令在GO MOD中解析模块路径差异?
    在使用GO MOD时,在GO MOD 中克服模块路径差异时,可能会遇到冲突,其中3个Party Package将另一个PAXPANCE带有导入式套件之间的另一个软件包,并在导入式套件之间导入另一个软件包。如回声消息所证明的那样: go.etcd.io/bbolt [&&&&&&&&&&&&&&&&...
    编程 发布于2025-04-04
  • Java是否允许多种返回类型:仔细研究通用方法?
    Java是否允许多种返回类型:仔细研究通用方法?
    在Java中的多个返回类型:一种误解类型:在Java编程中揭示,在Java编程中,Peculiar方法签名可能会出现,可能会出现,使开发人员陷入困境,使开发人员陷入困境。 getResult(string s); ,其中foo是自定义类。该方法声明似乎拥有两种返回类型:列表和E。但这确实是如此吗...
    编程 发布于2025-04-04
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    将pandas dataframe列转换为dateTime格式示例:使用column(mycol)包含以下格式的以下dataframe,以自定义格式:})指定的格式参数匹配给定的字符串格式。转换后,MyCol列现在将包含DateTime对象。基于date filtering > = pd.to_...
    编程 发布于2025-04-04
  • 为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    为什么我在Silverlight Linq查询中获得“无法找到查询模式的实现”错误?
    查询模式实现缺失:解决“无法找到”错误在Silverlight应用程序中,尝试使用LINQ建立LINQ连接以错误而实现的数据库”,无法找到查询模式的实现。”当省略LINQ名称空间或查询类型缺少IEnumerable 实现时,通常会发生此错误。 解决问题来验证该类型的质量是至关重要的。在此特定实例中...
    编程 发布于2025-04-04
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-04-04

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3