MongoDB CURD之CREATE

CURD中的C,表示创建或者插入,在MongoDB的特性中,并不需要显示地先创建一个collection,因为MongoDB不对表结构有固定的要求,如果一个表尚未存在,那么在插入第一条document时,该表即被创建。
一、语法
插入文档有两种方式:
1.插入单条文档
db.collection.insertOne()
如:
db.sam.insertOne({name:“Sam”,age:25})
返回:

{
   "acknowledged" : true,
   "insertedId" : ObjectId("56fc40f9d735c28df206d078")
}

又或者指定_id插入一条文档:
db.sam.insertOne({_id:1,name:“Tom”,age:25})
返回:

{ "acknowledged" : true, "insertedId" : 1 }

2.插入多条文档

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" } }
])

以上命令插入三条文档,每个文档用{}括起来,文档之间以逗号分隔,多个文档整体用[]括起来。

3.通用的插入命令
db.sam.insert(),既可以插入单条文档也可以插入多条文档,如
db.sam.insert({name:“Sam”,age:25})
db.sam.insert([{name:“Sam”,age:25},{name:“Tom”,age:25}])

无论是插入单条还是多条文档,都可以指定writeconcern属性,如

db.sam.insertOne({name:"Sam",age:25},{w: "majority", wtimeout: 100})
db.sam.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" } }
],
{w: "majority", wtimeout: 100})

二、特性
1.自动创建
如果插入操作前colletion不存在,则自动创建。
2._id列
每个文档都包含一个_id主键,可以显示指定,不指定时系统自动生成。
3.原子性
insertOne()保证每一条文档插入的原子性。
insertMany()保证每一条文档各自的原子性,但是并不保证整体的原子性。意思是每插入一条文档,都具备原子性,但是并不保证多条文档的整体插入操作是原子的。
4.writeconcern
插入操作可以自定义指定writeconcern属性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值