Совершенно новый для Mongodb и С# драйвер.
Разработка выполняется с использованием Monodevelop на Ubuntu 14.04, а версия Mongodb - 3.2.10:
В настоящее время мой код имеет POCO, как показано ниже:
public class User
{
public String Name { get; set;}
public DateTime LastModifiedAt { get; set;}
public DateTime LastSyncedAt { get; set;}
public User ()
{
}
}
Им удалось создать коллекцию, а также добавить пользователей.
Как найти пользователей, чья временная метка LastModifiedAt больше, чем временная метка LastSyncedAt? Был какой-то поиск, но не смог найти ответ.
Любые предложения окажут огромную помощь
благодаря
Собственно, это не очень просто. Это должно быть возможно с помощью таких запросов, как:
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();
И да, вам нужен Id-Property для вашего модельного класса, я не упомянул об этом первым, потому что я думал, что у вас есть один, просто не помеченный в вопросе.