How to make a field immutable after creation in MongoDB?
imho there is no know methods to prevent updates inside mongo.
As you can control app behavior, then someone will still able to make this update outside the app. Mongo don't have triggers - which in sql world have the possibility to play as a data guards and prevent field changes.
As you re not using ODM, then all you can have is CQRS pattern which will allow you to control app behavior and prevent such updates.
Use case: I'm writing a backend using MongoDB (and Flask).  At the moment this is not using any ORM like Mongoose/Mongothon.  I'd like to store the _id of the user which created each document in the document.  I'd like it to be impossible to modify that field after creation.  The backend currently allows arbitrary updates using (essentially) collection.update_one({"_id": oid}, {"$set": request.json})
I could filter out the _creator_id field from request.json (something like del request.json["_creator_id"]) but I'm concerned that doesn't cover all possible ways in which the syntax could be modified to cause the field to be updated (hmm, dot notation?).  Ideally I'd like a way to make fields write-once in MongoDB itself, but failing that, some bulletproof way to prevent updates of a field in code.