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

SQL 已死?开始使用 mongoDB

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

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]删除
最新教程 更多>
  • 如何从PHP中的数组中提取随机元素?
    如何从PHP中的数组中提取随机元素?
    从阵列中的随机选择,可以轻松从数组中获取随机项目。考虑以下数组:; 从此数组中检索一个随机项目,利用array_rand( array_rand()函数从数组返回一个随机键。通过将$项目数组索引使用此键,我们可以从数组中访问一个随机元素。这种方法为选择随机项目提供了一种直接且可靠的方法。
    编程 发布于2025-07-05
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    编程 发布于2025-07-05
  • CSS可以根据任何属性值来定位HTML元素吗?
    CSS可以根据任何属性值来定位HTML元素吗?
    靶向html元素,在CSS 中使用任何属性值,在CSS中,可以基于特定属性(如下所示)基于特定属性的基于特定属性的emants目标元素: 字体家庭:康斯拉斯(Consolas); } 但是,出现一个常见的问题:元素可以根据任何属性值而定位吗?本文探讨了此主题。的目标元素有任何任何属性值,属...
    编程 发布于2025-07-05
  • 为什么我的CSS背景图像出现?
    为什么我的CSS背景图像出现?
    故障排除:CSS背景图像未出现 ,您的背景图像尽管遵循教程说明,但您的背景图像仍未加载。图像和样式表位于相同的目录中,但背景仍然是空白的白色帆布。而不是不弃用的,您已经使用了CSS样式: bockent {背景:封闭图像文件名:背景图:url(nickcage.jpg); 如果您的html,css...
    编程 发布于2025-07-05
  • 为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    为什么不````''{margin:0; }`始终删除CSS中的最高边距?
    在CSS 问题:不正确的代码: 全球范围将所有余量重置为零,如提供的代码所建议的,可能会导致意外的副作用。解决特定的保证金问题是更建议的。 例如,在提供的示例中,将以下代码添加到CSS中,将解决余量问题: body H1 { 保证金顶:-40px; } 此方法更精确,避免了由全局保证金重置引...
    编程 发布于2025-07-05
  • 如何使用Regex在PHP中有效地提取括号内的文本
    如何使用Regex在PHP中有效地提取括号内的文本
    php:在括号内提取文本在处理括号内的文本时,找到最有效的解决方案是必不可少的。一种方法是利用PHP的字符串操作函数,如下所示: 作为替代 $ text ='忽略除此之外的一切(text)'; preg_match('#((。 &&& [Regex使用模式来搜索特...
    编程 发布于2025-07-05
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-07-05
  • 如何高效地在一个事务中插入数据到多个MySQL表?
    如何高效地在一个事务中插入数据到多个MySQL表?
    mySQL插入到多个表中,该数据可能会产生意外的结果。虽然似乎有多个查询可以解决问题,但将从用户表的自动信息ID与配置文件表的手动用户ID相关联提出了挑战。使用Transactions和last_insert_id() 插入用户(用户名,密码)值('test','test...
    编程 发布于2025-07-05
  • 如何使用PHP从XML文件中有效地检索属性值?
    如何使用PHP从XML文件中有效地检索属性值?
    从php $xml = simplexml_load_file($file); foreach ($xml->Var[0]->attributes() as $attributeName => $attributeValue) { echo $attributeName,...
    编程 发布于2025-07-05
  • 反射动态实现Go接口用于RPC方法探索
    反射动态实现Go接口用于RPC方法探索
    在GO 使用反射来实现定义RPC式方法的界面。例如,考虑一个接口,例如:键入myService接口{ 登录(用户名,密码字符串)(sessionId int,错误错误) helloworld(sessionid int)(hi String,错误错误) } 替代方案而不是依靠反射...
    编程 发布于2025-07-05
  • 在JavaScript中如何并发运行异步操作并正确处理错误?
    在JavaScript中如何并发运行异步操作并正确处理错误?
    同意操作execution 在执行asynchronous操作时,相关的代码段落会遇到一个问题,当执行asynchronous操作:此实现在启动下一个操作之前依次等待每个操作的完成。要启用并发执行,需要进行修改的方法。 第一个解决方案试图通过获得每个操作的承诺来解决此问题,然后单独等待它们: co...
    编程 发布于2025-07-05
  • 编译器报错“usr/bin/ld: cannot find -l”解决方法
    编译器报错“usr/bin/ld: cannot find -l”解决方法
    错误:“ usr/bin/ld:找不到-l “ 此错误表明链接器在链接您的可执行文件时无法找到指定的库。为了解决此问题,我们将深入研究如何指定库路径并将链接引导到正确位置的详细信息。添加库搜索路径的一个可能的原因是,此错误是您的makefile中缺少库搜索路径。要解决它,您可以在链接器命令中添加...
    编程 发布于2025-07-05
  • 如何使用Python有效地以相反顺序读取大型文件?
    如何使用Python有效地以相反顺序读取大型文件?
    在python 反向行读取器生成器 == ord('\ n'): 缓冲区=缓冲区[:-1] 剩余_size- = buf_size lines = buffer.split('\ n'....
    编程 发布于2025-07-05
  • 为什么不使用CSS`content'属性显示图像?
    为什么不使用CSS`content'属性显示图像?
    在Firefox extemers属性为某些图像很大,&& && && &&华倍华倍[华氏华倍华氏度]很少见,却是某些浏览属性很少,尤其是特定于Firefox的某些浏览器未能在使用内容属性引用时未能显示图像的情况。这可以在提供的CSS类中看到:。googlepic { 内容:url(&#...
    编程 发布于2025-07-05
  • 如何将来自三个MySQL表的数据组合到新表中?
    如何将来自三个MySQL表的数据组合到新表中?
    mysql:从三个表和列的新表创建新表 答案:为了实现这一目标,您可以利用一个3-way Join。 选择p。*,d.content作为年龄 来自人为p的人 加入d.person_id = p.id上的d的详细信息 加入T.Id = d.detail_id的分类法 其中t.taxonomy =...
    编程 发布于2025-07-05

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

Copyright© 2022 湘ICP备2022001581号-3