【发布时间】:2017-02-12 00:32:06
【问题描述】:
我只想返回状态为“活动”的数组中的朋友对象。然而,当我发出获取请求时,我仍然看到状态为“待定”的朋友。
这是我的索引控制器:
index: function(req, res) {
User.findOne({
_id: req.params.id
})
.populate({path: "roommates", match: {status: {$eq: "active"}}})
.exec(function(err, user) {
console.log(user.roommates);
})
}
这是记录到控制台的结果:
[ { _id: 57f2e5e02d58f51a8284bc11,
balance: 0,
requests: [],
status: 'pending' } ]
这是我的用户模型供参考:
var UserSchema = new Schema({
name: String,
username: {
type: String,
required: [true, "Please enter a username"],
minlength: [6, "Username must be at least 6 characters"],
maxlength: [15, "Username cannot exceed 15 characters"],
unique: true
},
password: {
type: String,
required: [true, "Please enter a password"],
minlength: [6, "Password must be at least 6 characters"],
maxlength: [17, "Password cannot exceed 17 characters"],
},
roommates: [{roommate: {type: Schema.Types.ObjectId, ref: "User", unique: true}, status: {type: String, default: "pending"}, requests: [{type: Schema.Types.ObjectId, ref: "Request"}], balance: {type: Number, default: 0}}]
})
我只想返回状态为“活跃”的朋友。有什么帮助吗? 谢谢!
【问题讨论】:
-
“用户”模式在哪里,或者它在室友中引用自我模式??
-
我不清楚你在问什么?用户模式在哪里?它在底部代码块的上方。
标签: node.js mongodb express mongoose mongoose-populate