node.js - mangouste comment filtrer et paginer en fonction des tables associées
PHPz
PHPz 2017-05-24 11:35:40
0
1
1775

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的数据
尝试失败
PHPz
PHPz

学习是最好的投资!

répondre à tous(1)
滿天的星座

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!

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!