MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Porównanie dwóch pól kolekcji mongo za pomocą sterownika c# w mono

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.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Sterownik java MongoDB:filtruj według identyfikatora

  2. Meteor $i z $or

  3. Mongo DB - eksport w trybie rozszerzonym JSON

  4. R :Aktualizacja wpisu w mongodb przy użyciu mongolitu

  5. Mongoose Saved _id's jako ciąg zamiast ObjectId