2、mongodb增删改查

一、插入
1、批量插入
(1)有序插入,如果中间其中一个失败,后面的将不会继续执行
var  bulk  =  db .users.initializeOrderedBulkOp();  
bulk.insert( { user: "abc123", status: "A", points: 0 } );  
bulk.insert( { user: "ijk123", status: "A", points: 0 } );  
bulk.insert( { user: "mop123", status: "P", points: 0 } );  
bulk.find( { status: "D" } ).remove();  
bulk.find( { status: "P" } ).update( { $set: { comment: "Pending" } } );  
bulk.execute();  
(2)无序插入,如果中间其中一个失败,后面的将会继续执行
var  bulk  =  db .users.initializeUnorderedBulkOp();  
bulk.insert( { user: "abc123", status: "A", points: 0 } );  
bulk.insert( { user: "ijk123", status: "A", points: 0 } );  
bulk.insert( { user: "mop123", status: "P", points: 0 } );  
bulk.execute();  

Bulk 支持的操作包括:
• Bulk.insert()
• Bulk.find.upsert()
• Bulk.find.update()
• Bulk.find.updateOne()
• Bulk.find.replaceOne()
• Bulk.find.remove()
• Bulk.find.removeOne()
二、删除
db.集合.remove({})       删除全部
db.集合.remove({"name":"ddf"}) 删除的条件

三、修改
db.collection.update(<query>,      查询条件,相当于sql中的where<update>,     更改的内容{upsert:<boolean>,  当查询条件指明的文档不存在时,是否需要插入新文档multi:<boolean>,   当查询条件返回多个文档,是否需要一次性更新所有文档writeConcern:<document>  错误级别 })
  • WriteConcern.NONE:没有异常抛出
  • WriteConcern.NORMAL:仅抛出网络错误异常,没有服务器错误异常
  • WriteConcern.SAFE:抛出网络错误异常、服务器错误异常;并等待服务器完成写操作。
  • WriteConcern.MAJORITY: 抛出网络错误异常、服务器错误异常;并等待一个主服务器完成写操作。
  • WriteConcern.FSYNC_SAFE: 抛出网络错误异常、服务器错误异常;写操作等待服务器将数据刷新到磁盘。
  • WriteConcern.JOURNAL_SAFE:抛出网络错误异常、服务器错误异常;写操作等待服务器提交到磁盘的日志文件。
  • WriteConcern.REPLICAS_SAFE:抛出网络错误异常、服务器错误异常;等待至少2台服务器完成写操作。

db.col.find().pretty()   pretty()格式化返回结果

四、替换

db.col.save({"_id":ObjectId("56064f89ade2f21f36b03136"),"title":"MongoDB","description":"MongoDB 是一个 Nosql 数据库","by":"Runoob","url":"http://www.runoob.com","tags":["mongodb","NoSQL"],"likes":110})
备注:

区别

若新增的数据中存在主键 ,insert() 会提示错误,而save() 则更改原来的内容为新内容。

如:

已存在数据:  {_id : 1, " name " : " n1 " },再次进行插入操作时,

insert({_id : 1, " name " : " n2 " })    会报主键重复的错误提示

save({ _id : 1, " name " : " n2 " })     会把 n1 修改为  n2  。

相同点:

若新增的数据中没有主键时,会增加一条记录。

已存在数据:  { _id : 1, " name " : " n1 " },再次进行插入操作时,

insert({ " name " : " n2 " })    插入的数据因为没有主键,所以会增加一条数据

save({  " name " : " n2 " })   增加一条数据


五、删除
db.集合.remove({})       删除全部
db.集合.remove({"name":"ddf"}) 删除的条件



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值