我应用了$Match条件,但响应既没有变得更合适,也没有收到错误. 我想要经过过滤的记录,其中我传递了page_id,并期望所有版本都详细说明与传递的page_id映射的版本.
以下是我的代码 版本模型
const mongoose = require("mongoose");
const versionSchema = new mongoose.Schema({
version_name: { type: String, required: true },
version_slug: { type: String, required: true },
is_active: { type: Boolean, required: true },
is_deleted: { type: Boolean, required: true }
}, {
timestamps: true,
versionKey: false
});
module.exports = mongoose.model("version", versionSchema);
页面版本模型
const mongoose = require("mongoose");
const { Schema } = mongoose;
const pageSchema = new mongoose.Schema({
page_id: { type: Schema.Types.ObjectId, ref: 'pages', require: true },
version_id: { type: Schema.Types.ObjectId, ref: 'versions', require: true },
}, {
timestamps: true,
versionKey: false
});
module.exports = mongoose.model("pageVersion", pageSchema);
控制器
pageversions.aggregate([
{
$lookup: {
from: "versions",
localField:"version_id",
foreignField:"_id",
as: "version"
}
},
{ $unwind: "$version" },
{
$project: {
page_id:1,
version_name: "$version.version_name",
virsion_slug: "$version.version_slug",
is_active: "$version.is_active"
}
}
]);
};
获得回应
[
{
"_id": "64b77c1f2712e47f8211aae2",
"page_id": "64b77c1f2712e47f8211aae0",
"version_name": "V2",
"virsion_slug": "v2",
"is_active": true
},
{
"_id": "64b78219a56c70b185045f7b",
"page_id": "64b77c1f2712e47f8211aae0",
"version_name": "V1",
"virsion_slug": "v1",
"is_active": true
},
{
"_id": "64b786251a4b4aa03e869adb",
"page_id": "64b786251a4b4aa03e869ad9",
"version_name": "V1",
"virsion_slug": "v1",
"is_active": true
}
]
预期react
[
{
"_id": "64b77c1f2712e47f8211aae2",
"page_id": "64b77c1f2712e47f8211aae0",
"version_name": "V2",
"virsion_slug": "v2",
"is_active": true
},
{
"_id": "64b78219a56c70b185045f7b",
"page_id": "64b77c1f2712e47f8211aae0",
"version_name": "V1",
"virsion_slug": "v1",
"is_active": true
}
]
我想要Page_id值为"64b77c1f2712e47f8211aae0"的所有版本名
我是Node的新手 请帮帮忙.
以下是收集的详细信息
集合:页面版本
集合:版本