Как группировать по свойству List <> в LiteDB - PullRequest
0 голосов
/ 03 июня 2019

У меня есть следующий класс, где Post может иметь много tags

public class Post
{
  public string Title {get;set;}
  public string Summary {get;set;}
  public List<string> Tags {get;set;}
}

Я хотел бы получить все Post сгруппированные по tag с, если с тегом связано хотя бы 10 Post.

Возможно ли сделать это эффективно в LiteDB с текущим классом? Я открыт для идей.

1 Ответ

0 голосов
/ 09 июля 2019

Я не уверен, что это то, что вам нужно.Но, возможно, ваша проблема в том, что сейчас у вас есть что-то вроде

var posts = db.GetCollection<Post>("Post");

Где var имеет тип LiteCollection<Post>, и вы не можете с этим работать.

Выможет использовать .FindAll() or Find(), чтобы получить IEnumerable, и с этим GroupBy для группировки, как вы хотите. 1

var groupedPost = posts.Find(p => p.Tags.Count > 10 ).GroupBy(*Group Condition*);
...