cari

Rumah  >  Soal Jawab  >  teks badan

node.js - Cara mongoose menapis dan halaman berdasarkan jadual yang berkaitan

Latar belakang masalah

  1. Dua skema berikut

    Columns: {
        active: Boolean,
        name: String
    }
    
    News: {
        column: {type: Schema.Types.ObjectId, ref: 'columns'},
        title: String,
        content: String
    }
  2. columnactive有被配置修改的需求,newsMeja mempunyai sejumlah besar keperluan sisipan

Penerangan masalah

  1. Bagaimana untuk berurusan dengan news进行分页查询,查询条件为column.activetrue?

  2. Bagaimana untuk menetapkan count syarat pertanyaan?

Percubaan penyelesaian

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的数据
尝试失败
PHPzPHPz2768 hari yang lalu1831

membalas semua(1)saya akan balas

  • 滿天的星座

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

    1 Dalam situasi yang anda nyatakan, isikan adalah seperti ini, jadi kebanyakan masa isikan sangat berguna apabila membuat perkaitan dengan dokumen, tetapi apabila membuat perkaitan dengan berbilang dokumen yang memenuhi syarat, ini adalah situasi yang anda hadapi. . , jika tiada persatuan, null akan dikembalikan.

    2. Adalah disyorkan agar anda membuat pengubahsuaian berikut pada model data:

    1) Kaedah model data yang anda gunakan ialah kaedah rujukan, iaitu kaedah pemodelan paradigma tradisional. Ia lebih sukar untuk digunakan dalam MongoDB;

    2) Pertimbangkan untuk menggunakan pemodelan anti-paradigma. Nama itu kedengaran sangat maju, ia hanya menggunakan sub-dokumen untuk mencapai perkaitan. Dalam keperluan anda, lebih mudah untuk membenamkan lajur ke dalam berita sebagai subdokumen.

    Untuk rujukan.

    Suka MongoDB! Berseronoklah!

    balas
    0
  • Batalbalas