一、插入
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"}) 删除的条件