MongoDB 插入文档
                           
天天向上
发布: 2025-03-06 23:24:57

原创
45 人浏览过

在 MongoDB 中,插入文档是将数据存储到集合中的过程。文档是 MongoDB 的基本数据结构,类似于关系型数据库中的记录。插入文档可以通过 Mongo Shell 或编程语言的 MongoDB 驱动程序进行。


1. 使用 Mongo Shell 插入文档

步骤:

  1. 连接到 MongoDB 实例:
    打开终端并连接到 MongoDB 实例:
   mongo
  1. 选择数据库:
    使用 use 命令选择数据库:
   use myDatabase
  1. 插入文档:
    使用 db.collection.insertOne()db.collection.insertMany() 插入文档。
  • 插入单个文档: 使用 insertOne() 插入一条文档。例如: db.users.insertOne({ name: "Alice", age: 25, city: "New York" }) 这会将一个包含 nameagecity 字段的文档插入到 users 集合中。
  • 插入多个文档: 使用 insertMany() 插入多个文档。例如:
    bash db.users.insertMany([ { name: "Bob", age: 30, city: "Los Angeles" }, { name: "Charlie", age: 28, city: "Chicago" } ])
    这会将两个文档插入到 users 集合中。
  1. 查看插入的文档:
    使用 find() 查询文档,查看插入的数据:
   db.users.find()

如果你想查看格式化输出,可以加上 pretty()

   db.users.find().pretty()

2. 使用 MongoDB 驱动程序插入文档

你也可以通过编程语言的 MongoDB 驱动程序来插入文档。以下是 Node.jsPython 的示例。

Node.js 示例

首先,安装 MongoDB Node.js 驱动:

npm install mongodb

然后,使用以下代码插入文档:

const { MongoClient } = require('mongodb');

// MongoDB URI
const uri = "mongodb://localhost:27017";

// 创建 MongoDB 客户端
const client = new MongoClient(uri);

async function insertDocument() {
  try {
    // 连接到 MongoDB
    await client.connect();
    console.log("成功连接到 MongoDB");

    // 获取数据库
    const db = client.db("myDatabase");

    // 插入单个文档
    const result = await db.collection("users").insertOne({ name: "Alice", age: 25, city: "New York" });
    console.log("插入的文档 ID:", result.insertedId);

    // 插入多个文档
    const resultMany = await db.collection("users").insertMany([
      { name: "Bob", age: 30, city: "Los Angeles" },
      { name: "Charlie", age: 28, city: "Chicago" }
    ]);
    console.log("插入的文档 IDs:", resultMany.insertedIds);

  } finally {
    await client.close();
  }
}

insertDocument().catch(console.error);

Python 示例

首先,安装 pymongo 驱动:

pip install pymongo

然后,使用以下代码插入文档:

from pymongo import MongoClient

# MongoDB URI
uri = "mongodb://localhost:27017"

# 创建 MongoDB 客户端
client = MongoClient(uri)

# 获取数据库
db = client["myDatabase"]

# 插入单个文档
result = db["users"].insert_one({ "name": "Alice", "age": 25, "city": "New York" })
print("插入的文档 ID:", result.inserted_id)

# 插入多个文档
result_many = db["users"].insert_many([
    { "name": "Bob", "age": 30, "city": "Los Angeles" },
    { "name": "Charlie", "age": 28, "city": "Chicago" }
])
print("插入的文档 IDs:", result_many.inserted_ids)

3. 插入文档时的其他选项

MongoDB 在插入文档时提供了一些选项,你可以根据需要进行选择。

  • writeConcern:可以指定写入的确认级别,确保文档被正确写入。
  • orderedinsertMany() 中可以设置 ordered 选项为 false,表示即使插入某些文档失败,MongoDB 仍然会继续插入其他文档。

insertMany() 示例(带 ordered 选项)

db.users.insertMany([
  { name: "John", age: 35, city: "San Francisco" },
  { name: "Eva", age: 22, city: "Boston" }
], { ordered: false })

上述命令插入多个文档时,即使某个文档插入失败,MongoDB 也会继续插入剩余的文档。


4. 插入文档的注意事项

  • 字段名称:文档中的字段可以是任何有效的 JSON 数据类型。注意,字段名称不能以 $. 开头。
  • 文档 ID:每个文档都有一个 _id 字段作为主键。如果没有显式提供,MongoDB 会自动生成一个唯一的 ObjectId 值。如果你希望自定义 _id,可以在插入时指定它。
  db.users.insertOne({ _id: 123, name: "Alice", age: 25 })
  • 批量插入:使用 insertMany() 插入多个文档时,MongoDB 会尽可能一次性将所有文档插入集合。如果某个文档插入失败,可以通过设置 ordered: false 来避免整个操作失败。

总结

MongoDB 提供了多种方法来插入文档,包括通过 Mongo Shell 和编程语言的驱动程序(如 Node.js 和 Python)。你可以插入单个文档或者多个文档,MongoDB 会自动为每个文档生成 _id 字段,如果需要,你也可以指定自定义 _id。在插入多个文档时,MongoDB 支持批量插入操作,并可以通过选项控制行为。

更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *