1

There is Model with ManyToMany field:

class Number(Model):
    current_number = IntegerField()

class MyModel(models.Model):
    numbers_set = models.ManyToMany(Number)

For example we have such dataset:

my_model_1.numbers_set = [1, 2, 3, 4]
my_model_2.numbers_set = [2, 3, 4, 5]
my_model_3.numbers_set = [3, 4, 5, 6]
my_model_4.numbers_set = [4, 5, 6, 7]
my_model_5.numbers_set = [4, 5, 6, 7]

I'm looking for a way to aggregate MyModel by amount of same numbers.

f.e. MyModel objects that have at least 3 same numbers in theirs numbers_set.

[
    [my_model_1, my_model_2],
    [my_model_2, my_model_3],
    [my_model_3, my_model_4, my_model_5],
]
Alex T
  • 4,331
  • 3
  • 29
  • 47

1 Answers1

0

if you are using Postgres version 9.4 and Django version 1.9 , It's better to use JSONField() rather than using ManyToMany(), for indexing purpose use jsonb indexing on Postgres which will provide you efficient query for fetching data. Check here

Piyush S. Wanare
  • 4,703
  • 6
  • 37
  • 54
  • In real case instead of Number I have quite common model with various fields (TextField, CharField, DateTimeField, IntegerField). So I assume I can't use JSONField.. – Alex T May 11 '16 at 13:37