RELATEED CONSULTING
相关咨询
欢迎选择下列在线客服咨询
微信客服
微信客服二维码
热线电话:13863516421
7x24小时,全年无休
我们服务器的承诺:
关闭右侧工具栏

境外国外服务器专题

如何在MongoDB中创建数据库和集合?

  • 来源:本站
  • 编辑: 超级管理员
  • 时间:2025-05-22 10:37:27
  • 阅读1次


在 MongoDB 中创建数据库和集合的操作非常灵活,因为 MongoDB 采用懒创建机制 —— 即数据库和集合在首次存储数据时才会被实际创建。以下是详细步骤和示例:

一、连接到 MongoDB

bash

# 本地连接(默认端口27017)

mongo


# 带认证的连接(需替换用户名、密码和认证数据库)

mongo -u "username" -p "password" --authenticationDatabase "admin"


# URI格式连接

mongo "mongodb://username:password@localhost:27017/admin"




二、创建数据库

javascript

// 切换到数据库(不存在则在首次写入时创建)

use mydatabase


// 验证当前数据库

db.getName()  // 返回 "mydatabase"

三、创建集合

1. 隐式创建(推荐)

在向不存在的集合插入数据时,MongoDB 会自动创建集合:


javascript

// 向users集合插入文档

db.users.insertOne({ name: "Alice", age: 30 })


// 查看所有集合

show collections  // 输出: users

2. 显式创建(自定义选项)

使用createCollection()方法创建带参数的集合:


javascript

// 创建固定大小集合(100MB,最多1000个文档)

db.createCollection("logs", { 

  capped: true, 

  size: 100 * 1024 * 1024, 

  max: 1000 

})


// 创建带验证规则的集合

db.createCollection("products", {

  validator: {

    $jsonSchema: {

      bsonType: "object",

      required: ["name", "price"],

      properties: {

        name: { type: "string" },

        price: { type: "number", minimum: 0 }

      }

    }

  }

})

四、验证创建结果

javascript

// 查看所有数据库

show dbs  // 注意:空数据库不会显示


// 查看当前数据库的集合

show collections


// 查看集合状态

db.users.stats()


// 查看集合文档数

db.users.countDocuments()

五、注意事项

空数据库不会显示:

只有当数据库包含至少一个集合,且集合包含至少一个文档时,show dbs才会显示该数据库。

集合命名规则:

不能包含空格、.、$、空字符

不能以system.开头(系统保留前缀)

建议使用小写字母和下划线(如user_profiles)

集合选项参数:

capped: 固定大小集合,支持高效的插入和查询

validator: 文档验证规则,确保数据结构一致性

autoIndexId: 是否自动创建_id索引(默认true)

六、示例:完整工作流

javascript

// 切换到mydb数据库(不存在则后续创建)

use mydb


// 创建用户集合并插入文档

db.users.insertMany([

  { _id: 1, name: "Alice", role: "admin" },

  { _id: 2, name: "Bob", role: "user", age: 25 }

])


// 创建订单集合并设置验证规则

db.createCollection("orders", {

  validator: {

    $jsonSchema: {

      bsonType: "object",

      required: ["user_id", "items", "total"],

      properties: {

        user_id: { bsonType: "int" },

        items: { 

          bsonType: "array",

          items: {

            bsonType: "object",

            required: ["product", "price", "quantity"],

            properties: {

              product: { bsonType: "string" },

              price: { bsonType: "double" },

              quantity: { bsonType: "int" }

            }

          }

        },

        total: { bsonType: "double" }

      }

    }

  }

})


// 插入符合验证规则的订单

db.orders.insertOne({

  user_id: 1,

  items: [

    { product: "Laptop", price: 999.99, quantity: 1 },

    { product: "Mouse", price: 29.99, quantity: 2 }

  ],

  total: 1059.97

})

七、常见问题

如何删除数据库 / 集合?

javascript

// 删除当前数据库

db.dropDatabase()


// 删除集合

db.users.drop()


如何查看集合选项?

javascript

db.getCollectionInfos()


如何修改集合选项?

javascript

// 修改固定集合大小(仅支持capped集合)

db.runCommand({ convertToCapped: "users", size: 1000000 })


我们提供7X24小时售后服务,了解更多机房产品和服务,敬请联系
购买咨询 售后服务