【发布时间】:2019-04-23 00:20:31
【问题描述】:
我有UserSchema,看起来像这样
const userSchema = mongoose.Schema({
email: {
type: String,
trim: true,
required: true,
unique: 1
},
password: {
type: String,
required: true,
minlength: 6
},
token: {
type: String
},
role: {
type: Number,
default: 0 // 0 is student, 1 is admin
},
files: [FileSchema],
internships: [InternshipSchema]
});
可以看出,files 和 internships 是子文档。我的目标是根据特定输入过滤其中任何一个,例如,我想根据国家/地区过滤实习。
但是,我遇到了仅返回与搜索匹配的元素的问题,我只能返回所有元素,而不管是否传递了搜索过滤器。
我尝试引用querying-subdocument-and-returning-matching-subdocument-only,但无法正常工作。
我当前的代码如下所示
app.get("/api/getInternships", (req, res) => {
User.aggregate(
{
$match: {
"internships.country": req.query.country
}
},
{ $unwind: "internships" },
{
$match: {
"internships.country": req.query.country
}
}
);
});
【问题讨论】:
标签: javascript node.js mongodb mongoose