Eigenlijk is het niet heel eenvoudig. Dit zou mogelijk moeten zijn met zoekopdrachten zoals:
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Maar helaas kon MongoDriver deze uitdrukking niet vertalen. U kunt ofwel alle gebruikers opvragen en aan de clientzijde filteren:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Of stuur een json-query, omdat MongoDb het zelf kan:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
En ja, je hebt een Id - Property nodig voor je modelklasse, ik heb het niet eerst genoemd, omdat ik dacht dat je er wel een had, alleen niet gepost in de vraag.