转自:http://www.guoxk.com/node/483
我们在使用MongoDB的update时,如果设置第三个参数为true,会在没有找到文档的情况下新建一个文档,下面是一个例子
>db.foo.find()
{ "_id" : ObjectId("4e9165cf717ed94f8289ac0c"), "bar" : "baz" }
>db.foo.update({"bar":"baz"}, {"$inc":{"count":3}})
>db.foo.find()
{ "_id" : ObjectId("4e9165cf717ed94f8289ac0c"), "bar" : "baz", "count" : 3 }
>db.foo.update({"bar":"bazz"}, {"$inc":{"count":3}})
>db.foo.find()
{ "_id" : ObjectId("4e9165cf717ed94f8289ac0c"), "bar" : "baz", "count" : 3 }
> db.foo.update({"bar":"bazz"}, {"$inc":{"count":3}},true)
> db.foo.find()
{ "_id" : ObjectId("4e9165cf717ed94f8289ac0c"), "bar" : "baz", "count" : 3 }
{ "_id" : ObjectId("4e916661739f1da5452a4dfe"), "bar" : "bazz", "count" : 3 }
如果在update中不设置第三个参数为true,在查询不到要更新的文档时,不做任何操作;如果设置第三个参数为true,则会在没有找到文档的情况下新建一个文档。