I\'d like to have a single method that either creates or updates a document for a policy. Searching and trying different techniques like this one, I have come up with a nul
Try setting the upsert parameter to true in your call to update. From the mongoid docs: http://docs.mongodb.org/manual/reference/method/db.collection.update/#update-parameter
Optional. If set to true, creates a new document when no document matches the query criteria. The default value is false, which does not insert a new document when no match is found.
This could be useful (from the docs):
If you specify an _id field in either the query parameter or replacement document, MongoDB uses that _id field in the inserted document.
So when you write:
model.findOneAndUpdate({_id: id}, data, f);
And id
is null
, it will insert a document with null
as id.