MongoDB CRUD操作:插入文档

MongoDB CRUD操作:插入文档

文章目录

在MongoDB中插入文档的集中方式:

  • 使用编程语言提供的驱动程序,在应用中调用API进行插入。
  • 使用MongoDB Atlas UI插入文档。
  • 使用MongoDB Compass、mongosh。
  • 使用其他第三方工具。

使用MongoDB Atlas UI插入文档

要使用MongoDB Atlas UI插入文档可以按照下面的步骤进行:

  1. 打开集合

    • 打开MongoDB Atlas UI,点击侧边栏的Database
    • 找到对应的数据库实例,点击Browse Collections
    • 在左侧的导航面板选择数据库
    • 在左边的导航面板选择集合
  2. 添加文档

    • 点击Insert Document
    • 点击**{}**图标,打开JSON视图
    • 将文档数组粘贴到文本输入框,例如,下面的JSON文本可以创建4个文档,每个文档都有3个字段:
    json 复制代码
    [
    { "prodId": 100, "price": 20, "quantity": 125 },
    { "prodId": 101, "price": 10, "quantity": 234 },
    { "prodId": 102, "price": 15, "quantity": 432 },
    { "prodId": 103, "price": 17, "quantity": 320 }
    ]
  3. 点击插入

MongoDB Atlas 将文档添加到集合中。

插入单个文档

使用db.collection.insertOne()可以向集合插入一个文档。下面的例子向inventory集合中插入一个文档。如果文档没有指定_id字段,Mongo DB会使用ObjectId给插入的文档自动生成_id字段。

js 复制代码
db.inventory.insertOne(
   { item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)

insertOne()返回一个包含新插入文档_id字段值的文档。如果要查看刚插入的文档,可以使用find()进行查询:

js 复制代码
db.inventory.find( { item: "canvas" } )

插入多个文档

db.collection.insertMany()可以将多个文档插入到集合。需要将文档数组传递给insertMany()

下面的示例将三个新文档插入inventory集合。如果文档未指定_id字段,MongoDB 会为每个文档自动增加一个ObjectId类型的_id字段。

js 复制代码
db.inventory.insertMany([
   { item: "journal", qty: 25, tags: ["blank", "red"], size: { h: 14, w: 21, uom: "cm" } },
   { item: "mat", qty: 85, tags: ["gray"], size: { h: 27.9, w: 35.5, uom: "cm" } },
   { item: "mousepad", qty: 25, tags: ["gel", "blue"], size: { h: 19, w: 22.85, uom: "cm" } }
])

insertMany() 返回一个包含新插入文档 _id 字段值的文档。要检索插入的文档,可以使用find()查询集合:

js 复制代码
db.inventory.find( {} )

插入行为

自动创建集合

如果插入操作时目标集合不存在,MongoDB会自动创建该集合。

_id字段

在MongoDB中,集合中的每个文档必须要有唯一的_id字段,并且作为主键索引。如果插入的文档缺少_id字段,MongoDB驱动会自动产生一个ObjectId作为_id字段的值。这个规则同样适用于更新操作时的upset:true时。

原子性

在MongoDB中,单个文档的写操作具有原子性。

写确认

通过写关注,可以指定MongoDB对写操作进行确认的级别。

相关推荐
NineData7 小时前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
IvorySQL8 小时前
双星闪耀温哥华:IvorySQL 社区两项议题入选 PGConf.dev 2026
数据库·postgresql·开源
ma_king10 小时前
入门 java 和 数据库
java·数据库·后端
jiayou6414 小时前
KingbaseES 实战:审计追踪配置与运维实践
数据库
NineData1 天前
NineData 迁移评估功能正式上线
数据库·dba
NineData1 天前
数据库迁移总踩坑?用 NineData 迁移评估,提前识别所有兼容性风险
数据库·程序员·云计算
赵渝强老师1 天前
【赵渝强老师】PostgreSQL中表的碎片
数据库·postgresql
全栈老石2 天前
拆解低代码引擎核心:元数据驱动的"万能表"架构
数据库·低代码
倔强的石头_2 天前
kingbase备份与恢复实战(二)—— sys_dump库级逻辑备份与恢复(Windows详细步骤)
数据库
jiayou644 天前
KingbaseES 实战:深度解析数据库对象访问权限管理
数据库