Всъщност не е много просто. Това би трябвало да е възможно със заявка като :
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Но за съжаление MongoDriver не можа да преведе този израз. Можете да направите заявка за всички потребители и да филтрирате от страна на клиента:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Или изпратете json заявка, защото самата MongoDb може да го направи:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
И, да, имате нужда от Id - Property за вашия клас модел, не го споменах първо, защото мислех, че имате такъв, просто не е публикуван във въпроса.