Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java mongo hadoop支持替换文档吗?_Java_Mongodb_Hadoop - Fatal编程技术网

Java mongo hadoop支持替换文档吗?

Java mongo hadoop支持替换文档吗?,java,mongodb,hadoop,Java,Mongodb,Hadoop,我正在尝试使用Spark中的mongo hadoop(mongo-hadoop-core-1.4.2.jar和mongo-java-driver-3.2.1.jar)替换MongoDB中的文档(而不是更新为$set): 然后我写了这样的东西: new MongoUpdateWritable(query, update, false, true); 但这是失败的: Caused by: java.lang.IllegalArgumentException: Invalid BSON field

我正在尝试使用Spark中的mongo hadoop(mongo-hadoop-core-1.4.2.jar和mongo-java-driver-3.2.1.jar)替换MongoDB中的文档(而不是更新为$set):

然后我写了这样的东西:

new MongoUpdateWritable(query, update, false, true);
但这是失败的:

Caused by: java.lang.IllegalArgumentException: Invalid BSON field name f1
我可以做到:

new MongoUpdateWritable(query, new BasicDBObject("$set", update), false, true);

但是我想替换整个文档。

更新:
用于替换中的文档的mongo hadoop。从那时起,要完全替换文档,您必须使用

new MongoUpdateWritable(query, update, false/*or true*/, false, true)
注意:不能同时使用替换和
multiUpdate=true
,替换也不会更改
\u id
值-请参阅:

update()
方法不会替换
\u id
值。

update()
无法更新多个文档


查看代码,这似乎是不可能的:
MongoOutputCommitter
始终发出更新命令(该命令只能包含
$operators
)-请参阅和下文。他们使用
BulkUpdateRequestBuilder
update
/
updateOne
方法,但要发出替换命令,他们需要使用
replaceOne
方法。

所以,没有这样的特征。也许你会提出请求:)

谢谢@Roman。我可能会对他们的JIRA提出一个功能请求,或者可能会对一个周末项目提出一个请求!
new MongoUpdateWritable(query, update, false/*or true*/, false, true)