Dua skema berikut
Columns: { active: Boolean, name: String } News: { column: {type: Schema.Types.ObjectId, ref: 'columns'}, title: String, content: String }
column
中active
有被配置修改的需求,news
Meja mempunyai sejumlah besar keperluan sisipan
Bagaimana untuk berurusan dengannews
进行分页查询,查询条件为column.active
为true
?
Bagaimana untuk menetapkancount
syarat pertanyaan?
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的数据 尝试失败
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!