Недавно я переключился с MongoDB на Azure DocumentDB и хочу проверить, существует ли повторяющийся документ в коллекции, динамически создавая запрос.
Вот как я решил построение запросов с помощью MongoDB:
MongoCollection collection = mongoDbDatabase.GetCollection<BsonDocument>("123");
var clauses = new List<IMongoQuery>();
foreach (var currResult in Results)
{
//add query
clauses.Add(Query.EQ("_result", currResult));
clauses.Add(Query.EQ("_id", myId));
}
var query = (clauses.Count > 0) ? Query.And(clauses) : null;
if (query != null)
{
//check if we have at least one duplicate
if (collection.FindOneAs<BsonDocument>(query) != null)
{
DoSomething();
}
}
Прямо сейчас я использую LINQ для проверки дубликатов в DocumentDB:
var result = (from c in documentDb.CreateDocumentQuery<Results>(collection.SelfLink)
where c.result = currResult &&
c.id == myId
select c).AsEnumerable();
int numResults = result.Count();
if(numResults > 0)
{
DoSomething();
}
Как я могу динамически создать предложение where, например Query.And(clauses)
, с помощью DocumentDB?
Спасибо