sql >> Database >  >> NoSQL >> MongoDB

Twee velden van mongo-verzameling vergelijken met c#-stuurprogramma in mono

Eigenlijk is het niet heel eenvoudig. Dit zou mogelijk moeten zijn met zoekopdrachten zoals:

var users = collection.Find(user => user.LastModifiedAt > user.LastSyncedAt).ToList();

Maar helaas kon MongoDriver deze uitdrukking niet vertalen. U kunt ofwel alle gebruikers opvragen en aan de clientzijde filteren:

var users = collection.Find(Builders<User>.Filter.Empty)
                      .ToEnumerable()
                      .Where(user => user.LastModifiedAt > user.LastSyncedAt)
                      .ToList();

Of stuur een json-query, omdat MongoDb het zelf kan:

var jsonFliter = "{\"$where\" : \"this.LastModifiedAt>this.LastSyncedAt\"}";
var users = collection.Find(new JsonFilterDefinition<User>(jsonFliter))
                      .ToList();

En ja, je hebt een Id - Property nodig voor je modelklasse, ik heb het niet eerst genoemd, omdat ik dacht dat je er wel een had, alleen niet gepost in de vraag.



  1. Hoe een argument door te geven aan Mongo Script

  2. Is het mogelijk om een ​​berekend veld van een MongoDB-query te retourneren?

  3. Stappen om MongoDB op Amazon Linux te installeren

  4. Wat is de meest tijdbesparende manier om een ​​datatabel te serialiseren/deserialiseren van/naar Redis?