📜  MongoDB Insert() 方法 – db.Collection.insert()(1)

📅  最后修改于: 2023-12-03 15:17:41.629000             🧑  作者: Mango

MongoDB Insert() 方法 - db.Collection.insert()

在MongoDB中,insert()方法是用来向集合(collection)中插入文档(document)的主要方法之一。它允许开发人员将新的文档添加到MongoDB数据库中。

语法
db.Collection.insert(
   <document or array of documents>,
   {
     writeConcern: <document>,
     ordered: <boolean>
   }
)
  • <document or array of documents>:要插入的文档或文档数组。
  • writeConcern (可选参数):一个文档,用于指定写入操作的确认级别。
  • ordered (可选参数):当值为 true 时,按照顺序插入文档;当值为 false 时,以无序方式插入文档。
插入单个文档

以下是插入单个文档的示例:

db.users.insert(
  {
    name: "John Doe",
    age: 25,
    email: "john.doe@example.com"
  }
)

上述示例将在users集合中插入了一个名为"John Doe"的用户文档。

插入多个文档

要插入多个文档,可以传递一个文档数组作为参数。以下是插入多个文档的示例:

db.users.insert([
  {
    name: "John Doe",
    age: 25,
    email: "john.doe@example.com"
  },
  {
    name: "Jane Smith",
    age: 30,
    email: "jane.smith@example.com"
  },
  {
    name: "Bob Johnson",
    age: 35,
    email: "bob.johnson@example.com"
  }
])

上述示例将在users集合中插入三个用户文档。

写入确认级别(write concern)

writeConcern参数可选,可以指定写入操作的确认级别。确认级别用于确定在写入操作完成前需要多少个副本确认。以下是示例:

db.users.insert(
  {
    name: "John Doe",
    age: 25,
    email: "john.doe@example.com"
  },
  {
    writeConcern: { w: "majority", wtimeout: 5000 }
  }
)

上述示例中的writeConcern设置为{ w: "majority", wtimeout: 5000 },表示在操作完成前需要大多数副本的确认,并在5秒后超时。

无序插入文档

默认情况下,insert()方法按照顺序插入文档。但是,可以通过设置ordered参数为false来以无序方式插入文档。以下是示例:

db.users.insert(
  [
    { name: "John Doe", age: 25 },
    { name: "Jane Smith", age: 30 },
    { name: "Bob Johnson", age: 35 }
  ],
  {
    ordered: false
  }
)

上述示例中的ordered参数被设置为false,表示以无序方式插入文档。这意味着即使插入操作失败,其他文档的插入也会继续进行。

返回结果

插入操作成功后,insert()方法会返回一个WriteResult对象,其中包含有关插入操作的详细信息。可以使用该对象的方法和属性来检查操作的结果。

结论

insert()是MongoDB中用于插入文档的常用方法之一。通过使用insert()方法,开发人员可以轻松地向指定的集合中插入单个或多个文档。还可以选择确认级别和插入顺序,以满足特定需求。插入操作成功后,可以通过返回的WriteResult对象来检查和处理结果。

请确保在使用insert()插入文档时了解和注意数据包含的结构,以确保数据的一致性和完整性。