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对写操作进行确认的级别。

相关推荐
CryptoRzz3 分钟前
欧美(美股、加拿大股票、墨西哥股票)股票数据接口文档
java·服务器·开发语言·数据库·区块链
APItesterCris39 分钟前
构建弹性数据管道:利用淘宝商品 API 进行流式数据采集与处理
linux·数据库·windows
九河云1 小时前
TOS + 数字孪生:集装箱码头的智能进化密码
大数据·服务器·网络·数据库·数字化转型
手握风云-1 小时前
MySQL数据库精研之旅第十九期:存储过程,数据处理的全能工具箱(二)
数据库·mysql
孟意昶1 小时前
Doris专题17- 数据导入-文件格式
大数据·数据库·分布式·sql·doris
你可以永远相信功夫熊猫1 小时前
金蝶云·星瀚 | 生产制造成本核算终极实操手册(从0到1,含两套完整案例)
数据库·erp
Thepatterraining2 小时前
MySQL零基础教程:DDL/DCL/DML详解,从建库到存储过程一篇搞定!
数据库·sql·mysql
想ai抽2 小时前
深入starrocks-怎样实现多列联合统计信息
java·数据库·数据仓库
Y4090012 小时前
MySQL中的“事务”
数据库·mysql
Raymond运维2 小时前
MySQL源码编译安装
linux·数据库·mysql