दरअसल, यह बहुत आसान नहीं है। यह क्वेरी के साथ संभव होना चाहिए जैसे:
var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();
लेकिन दुर्भाग्य से MongoDriver इस अभिव्यक्ति का अनुवाद नहीं कर सका। आप या तो सभी उपयोगकर्ताओं को क्वेरी कर सकते हैं और क्लाइंट साइड पर फ़िल्टर कर सकते हैं:
var users = collection.Find(Builders<User>.Filter.Empty)
.ToEnumerable()
.Where(user => user.LastModifiedAt > user.LastSyncedAt)
.ToList();
या json क्वेरी भेजें, क्योंकि MongoDb स्वयं ऐसा करने में सक्षम है:
var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
.ToList();
और, हाँ, आपको अपने मॉडल वर्ग के लिए एक आईडी - संपत्ति की आवश्यकता है, मैंने पहले इसका उल्लेख नहीं किया है, क्योंकि मुझे लगा कि आपके पास एक है, बस प्रश्न में पोस्ट नहीं किया गया है।