MongoDB CRUD操作:插入文档
文章目录
- MongoDB CRUD操作:插入文档
- 使用MongoDB Atlas UI插入文档
- 插入单个文档
- 插入多个文档
- 插入行为
- 自动创建集合
- _id字段
- 原子性
- 写确认
在MongoDB中插入文档的集中方式:
- 使用编程语言提供的驱动程序,在应用中调用API进行插入。
- 使用MongoDB Atlas UI插入文档。
- 使用MongoDB Compass、mongosh。
- 使用其他第三方工具。
使用MongoDB Atlas UI插入文档
要使用MongoDB Atlas UI插入文档可以按照下面的步骤进行:
-
打开集合
- 打开MongoDB Atlas UI,点击侧边栏的Database
- 找到对应的数据库实例,点击Browse Collections
- 在左侧的导航面板选择数据库
- 在左边的导航面板选择集合
-
添加文档
- 点击Insert Document
- 点击{}图标,打开JSON视图
- 将文档数组粘贴到文本输入框,例如,下面的JSON文本可以创建4个文档,每个文档都有3个字段:
[ { "prodId": 100, "price": 20, "quantity": 125 }, { "prodId": 101, "price": 10, "quantity": 234 }, { "prodId": 102, "price": 15, "quantity": 432 }, { "prodId": 103, "price": 17, "quantity": 320 } ]
-
点击插入
MongoDB Atlas 将文档添加到集合中。
插入单个文档
使用db.collection.insertOne()
可以向集合插入一个文档。下面的例子向inventory
集合中插入一个文档。如果文档没有指定_id
字段,Mongo DB会使用ObjectId给插入的文档自动生成_id
字段。
db.inventory.insertOne(
{ item: "canvas", qty: 100, tags: ["cotton"], size: { h: 28, w: 35.5, uom: "cm" } }
)
insertOne()
返回一个包含新插入文档_id
字段值的文档。如果要查看刚插入的文档,可以使用find()
进行查询:
db.inventory.find( { item: "canvas" } )
插入多个文档
db.collection.insertMany()
可以将多个文档插入到集合。需要将文档数组传递给insertMany()
。
下面的示例将三个新文档插入inventory
集合。如果文档未指定_id
字段,MongoDB 会为每个文档自动增加一个ObjectId类型的_id
字段。
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()
查询集合:
db.inventory.find( {} )
插入行为
自动创建集合
如果插入操作时目标集合不存在,MongoDB会自动创建该集合。
_id字段
在MongoDB中,集合中的每个文档必须要有唯一的_id
字段,并且作为主键索引。如果插入的文档缺少_id
字段,MongoDB驱动会自动产生一个ObjectId作为_id
字段的值。这个规则同样适用于更新操作时的upset:true
时。
原子性
在MongoDB中,单个文档的写操作具有原子性。
写确认
通过写关注,可以指定MongoDB对写操作进行确认的级别。