mongodb - save()和insert()的区别

遇到_id相同的情况下:
insert操作会报错;save完成保存操作

> db.person.find()
> db.person.insert({"_id":1,age:1,name:"hh"})
WriteResult({ "nInserted" : 1 })
> db.person.find()
{ "_id" : 1, "age" : 1, "name" : "hh" }

#insert一个"_id"已经存在的文档
> db.person.insert({"_id":1,age:10,name:"hh02"})
WriteResult({
        "nInserted" : 0,
        "writeError" : {
                "code" : 11000,
                "errmsg" : "E11000 duplicate key error collection: foobar.person index: _id_ dup key: { : 1.0 }"
        }
})
> db.person.find()
{ "_id" : 1, "age" : 1, "name" : "hh" }

#save一个"_id"已经存在的文档
> db.person.save({"_id":1,age:10,name:"hh02"})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.person.find()
{ "_id" : 1, "age" : 10, "name" : "hh02" }
>
时间: 2025-01-04 22:42:09

mongodb - save()和insert()的区别的相关文章

mongodb的save和insert函数的区别

mongodb的save和insert函数都可以向collection里插入数据,但两者是有两个区别: 一.使用save函数里,如果原来的对象不存在,那他们都可以向collection里插入数据,如果已经存在,save会调用update更新里面的记录,而insert则会忽略操作 二.insert可以一次性插入一个列表,而不用遍历,效率高, save则需要遍历列表,一个个插入. 看下这两个函数的原型就清楚了,直接输入函数名便可以查看原型,下面标红的部分就是实现了循环,对于远程调用来说,是一性次将整

MongoDB save()方法和insert()方法的区别

MongoDB save()方法和insert()方法的区别 首先看官方文档怎么说的 Updates an existing document or inserts a new document, depending on its document parameter save方法有更新和插入两种功能,到底是插入还是更新文档取决于save的参数.那么到底是依赖于哪个参数呢?继续看 If the document does not contain an _id field, then the sa

save(),saveOrUpdate(),merge()的区别

save(),saveOrUpdate(),merge()的区别 Save save()方法能够保存实体到数据库,正如方法名称save这个单词所表明的意思.我们能够在事务之外调用这个方法,这也是我不喜欢使用这个方法保存数据的原因.假如两个实体之间有关系(例如employee表和address表有一对一关系),如果在没有事务的情况下调用这个方法保存employee这个实体,除非调用flush()这个方法,否则仅仅employee实体会被保存. saveOrUpdate saveOrUpdate()

REPLACE INTO 和 INSERT INTO 区别

REPLACE的运行与INSERT很相似. 只有一点例外,假如表中的一个旧记录与一个用于PRIMARY KEY或一个UNIQUE索引的新记录具有相同的值,则在新记录被插入之前,旧记录被删除. 注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用一个REPLACE语句没有意义.该语句会与INSERT相同,因为没有索引被用于确定是否新行复制了其它的行. REPLACE语句会返回一个数,来指示受影响的行的数目.该数是被删除和被插入的行数的和.如果对于一个单行REPLACE该数为1,则

YII框架中save()和insert()的用法差异

要了解YII框架中save()和insert()的用法差异,首先查看一下手册中关于两个方法的定义: http://www.yiichina.com/api/CActiveRecord#save-detail save() 方法 源码: framework/db/ar/CActiveRecord.php#784 保存当前的记录. 插入记录到数据表的一行, 如果它的isNewRecord属性为true(通常情况下使用的‘new’运算符来创建记录). 否则, 将被用于更新表中的相应行(通常情况下,使用

Java MongoDB : Save image example

Java MongoDB : Save image example In this tutorial, we show you how to save an image file into MongoDB, via GridFS API. The GridFS APIs are able to serve other binary files as well, like video and music files. 译:在本教程中,我们将向你展示如何通过 GridFS API 保存一个图片到Mo

关于thymeleaf th:replace th:include th:insert 的区别

关于thymeleaf th:replace th:include th:insert 的区别    th:insert   :保留自己的主标签,保留th:fragment的主标签.    th:replace :不要自己的主标签,保留th:fragment的主标签.    th:include :保留自己的主标签,不要th:fragment的主标签.(官方3.0后不推荐) 例子 <span style="font-family:SimHei;font-size:18px;"&g

hibernate的save方法与sql的insert的区别

public boolean addDiscuss(Discuss discuss) {// Session session = HibernateSessionFactory.getSession();// 获得Session对象// try {// session.save(discuss);// 保存信息 ,不可行error,Cannot add or update a child row: a foreign key constraint fails // } catch (Except

MongoDB操作:insert()

@Override public boolean inSert(String dbName, String collectionName, String[] keys, Object[] values) { DB db = null; DBCollection dbCollection = null; WriteResult result = null; String resultString = null; if(keys!=null && values!=null){ //keys与v