当前位置: 首页>数据库>正文

mongodb BSON 配置 mongodb bulk

一、插入 

 
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 " })    会报主键重复的错误提示
_id : 1, " name " : " n2 " })     会把 n1 修改为  n2  。
相同点:
若新增的数据中没有主键时,会增加一条记录。
已存在数据:  { _id : 1, " name " : " n1 " },再次进行插入操作时,
insert({ " name " : " n2 " })    插入的数据因为没有主键,所以会增加一条数据
save({  " name " : " n2 " })   增加一条数据。

 
 

   五、删除 
 
 

   db.集合.remove({})       删除全部 
 
 
 

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

https://www.xamrdz.com/database/6o71935732.html

相关文章: