MongoDB Insert 方法(第 6 天)

作者 : 慕源网 本文共1601个字,预计阅读时间需要5分钟 发布时间: 2021-10-29 共477人阅读

在阅读本文之前,我强烈建议您阅读本系列的以下前几期:

写操作是任何类型的创建和修改数据的操作。关系数据库包含 3 种类型的写操作。它们是插入、更新和删除。MongoDB 有许多写入操作(即插入、更新、保存、删除、更新插入),它们是插入、更新和删除数据。每个写操作都针对一个集合。每个写操作在文档级别都是原子性(atomic )的。

为了删除、保存、更新和插入操作,我们可以指定标准或条件来标识要更新或删除的文档。

这篇文章解释了插入方法。

Insert

MongoDB 中的 Insert 方法类似于关系型数据库的“Insert Into”命令。Insert 方法将新文档插入到集合中。我们可以根据我们的偏好或要求将单个、多个和嵌入的文档插入到集合中。

语法: db.Collection_Name.insert()

插入单个文档

上图显示了将单个文档插入到集合中的基本方法。现在我们在 MongoDB shell 中执行一些查询。

在前面的示例中,我们插入了 3 个文档,但一次只有一个文档在 Employee 集合中。

插入多个文档

在前面的示例中,我们看到了如何将单个文档插入到集合中。如果我们要插入大量数据,这种方法将需要时间。对于此类类型,MongoDB 提供了一种多次插入的方法。使用这种方法,我们可以在单个插入命令中插入多个文档。

让我们看一个例子:

在上面的例子中,我们使用一个插入命令插入了两个文档。

插入嵌入式文档

包含另一个文档的文档,因为它的键值对被称为嵌入式文档。MongoDB 数据库具有灵活的模式,因此不需要在集合文档中具有相同的字段或结构集以及公共字段。下图提供了嵌入式文档结构的基本概念。

让我们看一个例子:

Insert_Behaviour

当我们在没有指定 _id 字段的情况下在任何集合中添加新文档时,MongoDB 会隐式添加一个 _id 字段。此 _Id 字段唯一标识每个文档。如果我们明确提供 _id 字段,那么 MongoDB 首先检查 _Id 字段的值。如果这个 _id 已经存在,那么 MongoDB 将抛出异常。

让我们看一个例子:

在上面的例子中,我们添加了两个文档。在第一个文档中,我们没有指定 _id 字段,因此 MongoDB 内部将 _id 添加到文档中。在第二个文档中,我们提供了一个外部 _id 字段。

再举一个例子:

在前面的示例中,我们尝试将新文档插入到集合中。但是_id字段的值已经存在,所以MongoDB数据库抛出ObjectId已经存在的错误。

嵌入文档作为连接的替代

在关系数据库中,我们使用连接从两个或多个表中检索数据。但是在 MongoDB 中我们不需要 Join,我们可以使用嵌入式文档的概念。

让我们看一个具有以下要求的社交网站示例:

  • 用户可以发布任意数量的帖子。
  • 每个帖子都包含喜欢的总数。
  • 每个帖子都有其他用户给出的评论以及他们的用户 ID、消息、日期时间和喜欢选项。
  • 每个帖子可以有零个或多个评论。
  • 用户可以对帖子发表零次或多次评论

对于这种类型的场景,在关系数据库中,我们需要两个表和表之间的一些关系。

如果您想检索有关帖子的信息,那么我们必须按如下方式执行 Join 操作:

但在 MongoDB 中,我们可以使用 Embedded Document 来执行此操作。我们不需要维护关系,也不需要做任何 Join 操作,如下所示:

如果我们想检索有关帖子的信息,那么我们可以使用以下查询:

我们可以看到,如果我们想要插入和检索相同的信息,那么我们在关系数据库中需要两个表和一个Join操作。我们可以使用不需要 Join 操作的 MongoDB 中的单个集合来做到这一点。

在我的下一篇文章中,我将解释写操作的其他方法。

下一篇 >> MongoDB Find 方法(第 7 天)

慕源网 » MongoDB Insert 方法(第 6 天)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录