我知道这个问题之前曾有人问过,并用$ upsert选项回答。 现在哪个不再可用???

插入很容易,但是如果存在则如何更新文档,如果不存在则如何插入? 我尝试了各种方法都无济于事。

我尝试的最后一件事是使用collection.updateOne(..),它带有两个Bson类型的参数。 因此,那么您将必须使用toBsonDocument()将对象转换为int Bson,但是需要将哪些参数传递给该对象? 带有3.0的示例将是很棒的...

我的临时解决方法是查找和不可用的insertOne else updateOne ...

#1楼 票数:2 已采纳

这很奇怪,因为在API Documentation 3.0中,upsert选项仍然存在。 DBCollection#更新

编辑:好吧,我猜您正在使用MongoCollection ...您应该使用updateOne方法并将UpdateOptions设置为true。

  ask by dexter translate from so

未解决问题?本站智能推荐:

1回复

NodeJS+Mongo:如果不存在则插入,否则-更新

我的mongodb集合中有一个对象。 它的架构是: 我的收藏可能有这样的对象,但可能没有。 我需要检查具有关键“工具”的对象是否存在( 请注意,我不知道此时“工具”的值是什么,它可能包含任何值或数组 ),如果存在 - 执行更新,否则 - 插入新值。 我怎样才能做到这一点? 不起作用
2回复

MongoDB:如果不存在则插入记录,如果存在则忽略

我有一系列MongoDB记录,如: {"name":"Bob", "gpa":4} {"name":"Sarah", "gpa":3} 我会遇到可能会或可能不会属于同一个人的各种其他记录。 如果他们是新人,我想接受他们,如果他们是我们以前见过的人,就不要更新他们。 所以,如果我得到{
1回复

更新到mongo3.0

我正在mongo 2.X上工作,现在已更新到Mongo 3.X,也将java mongodb客户端更新为3.0.3,我在mongo服务器上有js需要执行,而js需要两个对象参数,这在之前很容易完成像这样的版本: 需要帮助来运行数据库,但是现在代替数据库,我正在使用MongoDatabase(
2回复

MongoDb-如果集合不存在,则自动更新集合

我的收藏中有以下文件: 我需要遍历集合中的所有文档,并且如果"providers": []为空,则需要根据信息部分的值创建新的集合。 我远非MongoDB专家,所以我有几个问题: 我可以做为原子操作吗? 我可以使用MongoDB控制台执行此操作吗? 据我了解,我可以使用$a
1回复

将mongodb集合映射到不存在的Java类

我有一个带有几个集合的mongodb,我需要使用spring将这些集合映射到新的Java类。 第一个想法是期望将一项作为json并根据此json代码生成java类。 这是json: 首先,没有工具能够根据Java类生成,因为诸如“ NumberInt”或“ ISODate”之类的项目未知
1回复

Mongo客户端尝试关闭不存在/创建的连接,并因MongoSocketReadException失败:过早到达流的末尾

当尝试关闭mongo连接时, 在调试模式下看到很多“ com.mongodb.MongoSocketReadException:过早到达流尾”的应用日志 。 到目前为止,我的分析是,我没有看到按照格式connectionId {localValue:8}的连接ID在日志中创建连接 注意:相
1回复

MongoDBJava驱动程序:如果不存在则插入文档,否则不执行任何操作

我正在尝试编写一个将单词列表插入集合的Java函数。 我希望每个单词都有一个文档,其中包含唯一的字段“单词”。 我要插入的单词列表包含许多重复项,因此我希望我的函数仅在集合中不存在具有相同“单词”值的文档时才插入文档。 如果已经有一个具有相同“单词”值的文档,则该功能不应更改或替换该文档,
1回复

java控制台程序不存在包com.mongodb.client

所以这里是背景故事...... 我需要创建一个简单的 java 控制台项目来访问 MongoDB 数据库并对其中的记录进行一些更改,以便另一个(更大的)程序在尝试读取它们时不会出现段错误。 现在我试图让我的 java 控制台项目连接到 MongoDB,但程序一直声明我尝试使用的包不存在。 com