Faktisk er det ikke særlig simpelt. Dette burde være muligt med forespørgsler såsom:
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Men desværre kunne MongoDriver ikke oversætte dette udtryk. Du kan enten forespørge alle brugere og filtrere på klientsiden:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Eller send json-forespørgsel, fordi MongoDb selv er i stand til at gøre det:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
Og ja, du har brug for et id - ejendom til din modelklasse, jeg har ikke nævnt det først, fordi jeg troede, du havde et, bare ikke skrevet i spørgsmålet.