Egentligen är det inte särskilt enkelt. Detta bör vara möjligt med frågor som :
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Men tyvärr kunde MongoDriver inte översätta detta uttryck. Du kan antingen fråga alla användare och filtrera på klientsidan:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Eller skicka json-fråga, eftersom MongoDb själv kan göra det:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
Och ja, du behöver ett Id - Property för din modellklass, jag har inte nämnt det först, för jag trodde att du hade ett, bara inte postat i frågan.