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