MongoDB环境中的'upsert'是什么?

时间:2014-03-08 20:38:20

标签: mongodb

在MongoDB的上下文中,什么是upsert?

这是更新和插入吗?

我很好奇,因为我在MongoDB网站上的许多文章和文档中看到了这个术语的用法。

2 个答案:

答案 0 :(得分:2)

来自文档:一种操作,它将更新与查询匹配的第一个文档,或者如果没有匹配则插入新文档。新文档将包含操作隐含的字段。

请参阅http://docs.mongodb.org/manual/reference/glossary/#term-upsert

答案 1 :(得分:1)

要把它放到SQL术语中,它很像ON DUPLICATE KEY ... UPDATE,除了它在如何查询它时并不那么冗长。

所以基本上当你查询更新文档时,MongoDB找不到它,所以插入它。

upsert的条件接受与普通更新相同的所有内容,除了它还有$setOnInserthttp://docs.mongodb.org/manual/reference/operator/update/setOnInsert/)运算符,它允许您定义一组只会被用于考虑插入。