Поиск с несколькими критериями в LiteDB: объединить запросы - PullRequest
0 голосов
/ 01 июля 2018

Может кто-нибудь сказать мне, как искать данные в liteDb, используя следующий псевдокод?

Псевдокод

col = db.GetCollection<Product>("products");
string keyword = "1AS";

Query query;

if (condition1)
{
    query += Query.Contains("ProductName", keyword);
}

if (condition2)
{
    query += Query.Contains("ProductModel", keyword);
}

if (condition3)
{
    query += Query.Contains("Note", keyword);
}


if (query.Any()) //
{
    var data = col.Find(query).toList();
}

Заранее спасибо

1 Ответ

0 голосов
/ 01 июля 2018

Вы можете использовать Query.And(params Query[] queries), например:

var list = new List<Query>();

if (condition1)
{
    list.Add(Query.Contains("ProductName", keyword));
}
if (condition2)
{
    list.Add(Query.Contains("ProductModel", keyword));
}

...

if (list.Count > 0) //
{
    var q = list.Count == 1 ? list.First() : Query.And(list.ToArray());

    var data = col.Find(q);
}
...