Maison  >  Questions et réponses  >  le corps du texte

node.js - mangouste comment filtrer et paginer en fonction des tables associées

Contexte du problème

  1. Les deux schémas suivants

    Columns: {
        active: Boolean,
        name: String
    }
    
    News: {
        column: {type: Schema.Types.ObjectId, ref: 'columns'},
        title: String,
        content: String
    }
  2. columnactive有被配置修改的需求,newsLe tableau comporte un grand nombre d'exigences d'insertion

Description du problème

  1. Comment gérer news进行分页查询,查询条件为column.activetrue ?

  2. Comment définir count les conditions de requête ?

Tentative de solution

1.

   News.find().populate({
       path: 'column',
       match: { active: true }
   }).limit(10).skip(0).exec(function(err, news) {
       if (err) {
           console.log(err);
       } else {
           console.log(news);
       }
   });
输出结果:
news:[
  {
    "title": "这篇资讯的所属栏目正在开放",
    "column": {
      "active": true,
      "createdAt": "2017-04-11T10:35:29.747Z",
      "id": "58ecc960a4db1e3fc01c2d6d"
    },
    "updatedAt": "2016-11-29T08:55:42.000Z",
    "id": "5923ab21415f8f3bc43f8515"
  },
  {
    "title": "这篇资讯的所属栏目已被屏蔽",
    "column": null,
    "updatedAt": "2016-11-29T08:47:18.000Z",
    "id": "5923ab21415f8f3bc43f83bd"
  }
]
期望获取的结果是只有column中active为true的数据
尝试失败
PHPzPHPz2682 Il y a quelques jours1749

répondre à tous(1)je répondrai

  • 滿天的星座

    滿天的星座2017-05-24 11:37:40

    1, dans la situation que vous avez mentionnée, remplir est comme ça, donc la plupart du temps, remplir est très utile pour faire une association avec un document, mais pour faire une association avec plusieurs documents qui remplissent les conditions, voici ce que que vous avez rencontré. Dans ce cas, s'il n'y a pas d'association, null sera renvoyé.

    2, il est recommandé d'apporter les modifications suivantes au modèle de données :

    1) La méthode de modèle de données que vous utilisez est la méthode de référence, qui est une méthode de modélisation paradigmatique traditionnelle. Il est plus difficile à utiliser dans MongoDB

     ;

    2) Pensez à utiliser une modélisation anti-paradigme. Le nom semble très avancé, il utilise simplement un sous-document pour réaliser une association. Selon vos besoins, il est plus facile d'intégrer des colonnes dans les actualités en tant que sous-documents.

    Pour référence.

    J'adore MongoDB ! Amusez-vous!

    répondre
    0
  • Annulerrépondre