Java mongo hadoop支持替换文档吗?
我正在尝试使用Spark中的mongo hadoop(mongo-hadoop-core-1.4.2.jar和mongo-java-driver-3.2.1.jar)替换MongoDB中的文档(而不是更新为$set): 然后我写了这样的东西: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
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)