我知道这可能是个愚蠢的问题,但我在一本Electron 书上读到,MongoDB insert中有upsert个选项.我找不到关于这个的适当文件.有人能教我这个吗?

推荐答案

由于upsert被定义为"creates a new document when no document matches the query criteria"的操作,所以insert命令中没有upserts的位置.这是update命令的一个选项.如果您执行下面这样的命令,它的工作原理是updateif there is a document matching query, or as an insert with document described by update as an argument.

db.collection.update(query, update, {upsert: true})

MongoDB 3.2增加了replaceOne个:

db.collection.replaceOne(query, replacement, {upsert: true})

其行为类似,但其replacement不能包含更新运算符.

Mongodb相关问答推荐

用其他集合中的文档替换嵌套文档数组中的值

如何使用ID数组对一个集合中的金额求和并更新另一个集合中的字段?

如何在Mongo中制作全覆盖索引

MongoDB 根据最新日期查询多个不同的值

仅当特定字段存在于 MongoDB 中时才更新它

查询有关 Go 项目中对象数组的 MongoDb 集合

如何修改 mongodb 中嵌套对象数组中的字段名称/键?

MongoDB C# 驱动程序 2.0 InsertManyAsync 与 BulkWriteAsync

在 MongoDB 中打开连接的 SocketTimeout

将 MongoDB 地理空间索引与 3d 数据结合使用

MongoDB 文档操作是原子的和隔离的,但它们是否一致?

MongoDB 1.6.5:如何重命名集合中的字段

如何知道 MongoDB 集合大小?

spring-data-mongo - 可选查询参数?

如何使用原子操作在一个文档中切换布尔字段?

MongoDB 查找精确的数组匹配,但顺序无关紧要

MongoDB中超过2GB的数据库

mongodb启动错误

Mongodb 设计,嵌入与关系

何时使用Singleton单例、Transient和使用 Ninject 和 MongoDB 的请求