📜  如何在 MongoDB 文档中推送数据?(1)

📅  最后修改于: 2023-12-03 14:52:26.944000             🧑  作者: Mango

如何在 MongoDB 文档中推送数据?

MongoDB 是一个基于文档的数据库,而推送数据是向文档中插入数据的一种方式。在 MongoDB 中,可以使用 db.collection.insert() 方法向集合(即文档)中插入文档。

插入单个文档

以下是向集合中插入单个文档的基本语法:

db.collection.insert(
  <document>,
  {
    writeConcern: <document>,
    ordered: <boolean>
  }
)

其中,<document> 是要插入的文档。例如,以下是向 mycollection 集合中插入一个文档的示例:

db.mycollection.insert({
  name: "John",
  age: 30,
  city: "New York"
})

如果想指定写入关注级别(即写入的安全级别),可以使用 writeConcern 参数。此外,还可以使用 ordered 参数指定是否在按顺序插入文档时,当遇到第一个错误时就停止插入操作。默认情况下,ordered 参数为 true,表示按顺序插入文档并在遇到错误时停止插入操作。

插入多个文档

如果想向集合中插入多个文档,可以使用 db.collection.insertMany() 方法。以下是插入多个文档的基本语法:

db.collection.insertMany(
  [ <document 1> , <document 2>, ... ],
  {
    writeConcern: <document>,
    ordered: <boolean>
  }
)

其中,[ <document 1> , <document 2>, ... ] 是要插入的多个文档的数组。例如,以下是向 mycollection 集合中插入多个文档的示例:

db.mycollection.insertMany([
  {
    name: "John",
    age: 30,
    city: "New York"
  },
  {
    name: "Jane",
    age: 25,
    city: "Toronto"
  },
  {
    name: "Bob",
    age: 40,
    city: "Los Angeles"
  }
])

同样地,如果想指定写入关注级别和顺序,可以使用 writeConcernordered 参数。

返回结果

向集合中插入文档时,MongoDB 会返回一个包含以下属性的结果对象:

  • acknowledged (bool):表示操作是否被确认。如果为 true,表示操作被确认,如果为 false,表示操作未被确认。
  • insertedIds (array):表示已插入文档的 _id 值数组。对于单个文档插入,该数组只包含一个 _id

例如,以下是向 mycollection 集合中插入单个文档并输出结果的示例:

const result = db.mycollection.insert({
  name: "John",
  age: 30,
  city: "New York"
})

printjson(result)
// 输出:{ "acknowledged" : true, "insertedId" : ObjectId("5f8e6b47509db755d0b28432") }
总结

以上就是在 MongoDB 文档中推送数据的基本方法。总的来说,很容易理解并且非常灵活。想进一步了解 MongoDB 的话,可以查看 官方文档