有没有办法用MongoDB替换Many()?

时间:2017-09-05 07:14:00

标签: mongodb database nosql

假设我有一个集合和一个匹配该集合中三个文档的过滤器:A,B和C.

我正在寻找一个操作,它将原子地用我将指定的另一个集合替换这些文档。基本上:

collection.find(filter) -> {A,B,C}
collection.replaceMany(filter, {C,D})
collection.find(filter) -> {C,D}

A和B已被删除,并且已插入D. C本来可以改变。

MongoDB中有没有这样的操作?如果不是,你会如何实施这样的操作?

1 个答案:

答案 0 :(得分:1)

在您的示例中,您将使用2个文档替换3个文档。所以它不是替换文档,而是根据一些标准删除和插入文档。删除和插入此处是单独的操作。这两个操作都在集合上采用mongodb写锁定,但这些是我之前所说的单独操作。

您关注的是删除但我无法插入新文件。您的解决方案正在使用bulk write operations。或者,您始终可以在应用程序级别编写回滚机制。