var mongoose = require('mongoose'),
Schema = mongoose.Schema,
ObjectId = Schema.ObjectId;
var Group = new Schema({
name: { type: String, required: true },
members: [{ type: ObjectId, ref: 'User' }],
leader: { type: ObjectId, ref: 'User' },
// more fields to filter by
});
Group.method('role', function (user) {
if (this.leader === user) return "Leader";
else if (this.members.indexOf(user) >= 0) return "Member";
else return "Non-Member";
});
我是一个猫鼬新手,我的第一个真正的查询是一个棘手的问题。我需要选择一组显示组名称和当前用户的角色(user_id存储在会话变量中)。
我可以在Mongoose选择查询中使用'role'方法吗?
也许我应该使用自定义节点流并在那里实现角色方法?
我注意到我的条件(this.leader === user)或(this.members.indexOf(user)> = 0)是正确或有效的。我需要避免为每个Group文档加载User对象。
需要代码示例。
感谢您的帮助!
答案 0 :(得分:0)