Trên thực tế, nó không phải là rất đơn giản. Điều này có thể thực hiện được với câu truy vấn như:
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
Nhưng rất tiếc, MongoDriver không thể dịch biểu thức này. Bạn có thể truy vấn tất cả Người dùng và lọc ở phía máy khách:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
Hoặc gửi truy vấn json, vì bản thân MongoDb có thể thực hiện điều đó:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
Và, vâng, bạn cần một Id - Thuộc tính cho lớp mô hình của bạn, tôi chưa đề cập đến nó trước, vì tôi nghĩ bạn đã có, chỉ là chưa được đăng trong câu hỏi.