Właściwie to nie jest bardzo proste. Powinno to być możliwe za pomocą zapytań takich jak :
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Niestety, MongoDriver nie mógł przetłumaczyć tego wyrażenia.Możesz wysłać zapytanie do wszystkich użytkowników i filtrować po stronie klienta:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Lub wyślij zapytanie json, ponieważ sam MongoDb jest w stanie to zrobić:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
I tak, potrzebujesz Id - Property dla swojej klasy modelu, nie wspomniałem o tym jako pierwszy, ponieważ myślałem, że masz taki, po prostu nie zamieszczony w pytaniu.