Github user MikeThomsen commented on a diff in the pull request:
https://github.com/apache/nifi/pull/2560#discussion_r175836334
--- Diff:
nifi-nar-bundles/nifi-mongodb-bundle/nifi-mongodb-processors/src/main/java/org/apache/nifi/processors/mongodb/PutMongo.java
---
@@ -196,6 +237,33 @@ public void onTrigger(final ProcessContext context,
final ProcessSession session
}
}
+ private void removeUpdateKeys(String updateKeyParam, Map doc) {
+ String[] parts = updateKeyParam.split(",[\\s]*");
+ for (String part : parts) {
+ if (part.contains(".")) {
--- End diff --
> we don't need them to exist in the parsed filter query, right?
We do when replacing one document with another. Say you have a user account
document, and the update key is `username`. If the user is doing full document
replacement, and we remove the update key, the `username` field is going to be
removed from the document that is used in the substitution. So then the poor
end users will be searching through an accounts collection looking for
documents with no usernames.
---