我试图向我的MessageBoard模型中添加一个实例方法,以告诉我给定的用户是否是该MessageBoard的成员。
MessageBoard模式包含
members: [{
type: Schema.Types.ObjectId
ref: 'User'
}]但我的实例方法..。
MessageBoardSchema.methods.isUserMember = function(user) {
return (this.members.id(user));
};...tells me表示id方法在对象this.members上不存在。
我无法在其他类似问题中找到解决方案,因为我在这里使用的是引用而不是嵌套模式。
发布于 2014-08-25 21:11:10
id方法适用于在您的成员数组中有真实文档的嵌入式文档;在this.members中,您拥有的是一个ObjecIds数组。我建议你使用underscore.js
如果用户确实是user_id:
MessageBoardSchema.methods.isUserMember = function(user) {
var user_found = _.any(this.members, function(member){
// Use toString() if you are dealing with ObjectIds since
// new ObjectId("53fba4eb816bc772107552f0")==new ObjectId("53fba4eb816bc772107552f0")
// outputs false
return this.members.id.toString() == user.toString();
});
return user_found;
};如果用户确实是用户:
MessageBoardSchema.methods.isUserMember = function(user) {
var user_found = _.any(this.members, function(member){
// Use toString() if you are dealing with ObjectIds as explained
return this.members.id.toString() == user.id.toString();
});
return user_found;
};https://stackoverflow.com/questions/25491536
复制相似问题