django двойное левое соединение + django остальные рамки-сериалы

Я сделал это следующим образом:

db.collection.aggregate([
     { $match : { score : { $gt : 70, $lte : 90 } } },
     { $group: { _id: null, count: { $sum: 1 } } }
] ).map(function(record, index){
        print(index);
 });

Агрегат вернет массив, поэтому просто зациклируйте его и получите окончательный индекс.

И другим способом сделать это:

var count = 0 ;
db.collection.aggregate([
{ $match : { score : { $gt : 70, $lte : 90 } } },
{ $group: { _id: null, count: { $sum: 1 } } }
] ).map(function(record, index){
        count++
 }); 
print(count);
0
задан user3599803 16 January 2019 в 21:59
поделиться

1 ответ

1) То, что вы хотите сделать, противоречит тому, как работает Django, и приведет к большей боли, чем оно того стоит. Я бы порекомендовал сделать prefetch_related как предложено. Вы также можете изучить следующее. Вот документы на ManyToManyField .

class Item(models.Model):
    name = models.CharField(max_length=100)

class Group(models.Model):
   name = models.CharField(max_length=100)
   items = models.ManyToManyField(Group, through='ItemGroup')

class ItemGroup(models.Model):
   item = models.ForeignKey(Item, on_delete=models.CASCADE)
   group = models.ForeignKey(Group, on_delete=models.CASCADE)

2) Взгляните на ListField . Я думаю, что это должно помочь вам достичь того, что вы хотите там.

0
ответ дан schillingt 16 January 2019 в 21:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: