Does MongoDB still update or overwrite a document if the values will be unchanged?

Yes @scott_molinari, when we use the date timestamp field for updation then it will update the field with new record(as the records is same) but will update the timestamp field.

/* 1 */
{
“_id” : ObjectId(“5f72bec821f28d445c34c38c”),
“name” : “Jeff”,
“roll#” : “R101”,
“date” : ISODate(“2020-09-29T04:57:44.398Z”)
}

/* 2 */
{
“_id” : ObjectId(“5f72becf21f28d445c34c38d”),
“name” : “Ben”,
“roll#” : “R102”,
“date” : ISODate(“2020-09-29T04:59:45.213Z”)
}

/* 3 */
{
“_id” : ObjectId(“5f72bf3121f28d445c34c38e”),
“name” : “Ben”,
“roll#” : “R102”,
“date” : ISODate(“2020-09-29T04:59:45.213Z”)
}

/* 4 */
{
“_id” : ObjectId(“5f72bf3221f28d445c34c38f”),
“name” : “Ben”,
“roll#” : “R102”,
“date” : ISODate(“2020-09-29T04:59:45.213Z”)
}

/* 5 */
{
“_id” : ObjectId(“5f72bf3221f28d445c34c390”),
“name” : “Ben”,
“roll#” : “R102”,
“date” : ISODate(“2020-09-29T04:59:45.213Z”)
}

this is my sample data in a collection. Let’s use updateMany clause to update the document:
image
here ^ is the result that when we update the document using timestamp field the modified count was changed as timestamp is always changing.

And if you comment out the date field then the count will be zero. as the rest of the data is same. When so ever the timestamp field is in document then the update count will be changed.
In backend the data is not updated as the new data is also the same as previous so no need to change it.
I hope you will get what you need.