集合方法

MongoDB有两个更新方法,一个是db.collection.update(),另一个更新命令是db.collection.save()


用法

db.collection.save(obj)

其中,obj就是要更新的对象,只能是单条记录。如果在collection内已经存在一个和obj对象相同的"_id"的记录,MongoDB就会把obj对象替换collection内已经存在的记录,否则将会插入obj对象。如果obj内没有_id,系统会自动生成一个再插入,相当于update语句的upsert=true,multi=false的情况。


示例

先确认集合是空的,如下面的代码所示:

>db.t2.find()
>

再调用save插入一条数据,如下面的代码所示:

>db.t2.save({_id:10,name:"wangwenlong",age:31})
>db.t2.find()
{"_id":10,"name":"wangwenlong","age":31}

本例由于t2表中原来没有_id=10的记录,所以插入了一条新的。接下来调用save来更新已有的数据,如下面的代码所示:

>db.t2.save({_id:10,name:"wangwenlong",age:100})
>db.t2.find()
{"_id":10,"name":"wangwenlong","age":100}
>

在本例中由于t2表中已经有了_id=10的记录,所以就将这条记录更新一下,可以看出save操作等同于upsert操作。

集合方法