MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

मोनो में सी # ड्राइवर का उपयोग कर मोंगो संग्रह के दो क्षेत्रों की तुलना करना

दरअसल, यह बहुत आसान नहीं है। यह क्वेरी के साथ संभव होना चाहिए जैसे:

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();

और, हाँ, आपको अपने मॉडल वर्ग के लिए एक आईडी - संपत्ति की आवश्यकता है, मैंने पहले इसका उल्लेख नहीं किया है, क्योंकि मुझे लगा कि आपके पास एक है, बस प्रश्न में पोस्ट नहीं किया गया है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. स्कीमा से MongoDB कम्पास में 20 से अधिक नवीनतम दस्तावेज़ देखें

  2. क्या AsQueryable विधि नए मोंगोडब सी # ड्राइवर 2.0 आरसी में चली गई है?

  3. गिनती कुंजी के आधार पर कई मानदंडों और योग मिलान के साथ एकत्रीकरण

  4. ग्रंट सर्व घड़ी mongod.lock पर EBUSY चेतावनी फेंकती है

  5. Mongoose स्कीमा में अनेक मानों का उपयोग करने वाले अद्वितीय दस्तावेज़