mongoDB提供的update和delete方法中有对collection中一个document操作的(类似于limit 1),也有对collection中多个doucument操作的,还支持blukUpdate(这个有点像hibernateTemplate或是jdbcTemplate提供的blukUpdate)
UPDATE OPERATION:
1.updateOne
db.class.updateOne({
filterProp:{$lt:filterVal}
},{
$set : {setProp:setVal}
})
对等
update class set setProp=setVal
where filterProp < filterVal
limit 1
只是修改命中的一条数据的update的信息
好吧,是我错了,我的版本不支持updateOne,只有update
2.updateMany
db.class.updateMany({
filterProp:{$lt:filterVal}
},{
$set : {setProp:setVal}
})
对等
update class set setProp=setVal
where filterProp < filterVal
3.replaceOne(我这里实验的是较低版本的mongoDB)
replaceOne其实和我贴图中的update是一样的,和updateOne不同的是:
updateOne是对document中的某个prop替换value值
replaceOne是将满足的document替换掉用后面的collection

DELETE OPERATION:
1.deleteOne
以下是摘抄from API
The following diagram highlights the components of the MongoDB deleteOne() operation:
The following diagram shows the same query in SQL:
2.deleteMany
The following diagram highlights the components of the MongoDB deleteMany() operation:
The following diagram shows the same query in SQL:
3.remove

remove 和deleteOne的区别:
暂时没有发现有什么区别。。。。//TODO待补充
bulkWrite:(3.2版本新函数)
是将对应的update行为,组成jsonArray一次性起效。
db.collection.bulkWrite(
[
{ insertOne : { "document" : { name : "sue", age : 26 } } },
{ insertOne : { "document" : { name : "joe", age : 24 } } },
{ insertOne : { "document" : { name : "ann", age : 25 } } },
{ insertOne : { "document" : { name : "bob", age : 27 } } },
{ updateMany: {
"filter" : { age : { $gt : 25} },
"update" : { $set : { "status" : "enrolled" } }
}
},
{ deleteMany : { "filter" : { "status" : { $exists : true } } } }
]
)
本文详细介绍了MongoDB中的更新与删除操作,包括updateOne、updateMany、replaceOne及deleteOne、deleteMany等方法的使用,并对比了它们之间的区别。此外,还介绍了bulkWrite批量写入操作。
1500

被折叠的 条评论
为什么被折叠?



