【发布时间】:2014-05-12 17:14:40
【问题描述】:
一个成员是一个或多个组的一部分。一个组可以有一个或多个成员。
给定一个成员,以及他所在的组,我如何获得每个组中的其他成员?
var MemberSchema = new Schema(
{
name: {
first: { type: String },
last: { type: String },
},
groups: [ { type: String } ],
otherMembersInGroups: [ {
id: { type: Schema.ObjectId, ref: 'Member' } ,
name: {
first: { type: String },
last: { type: String },
}
} ],
});
var query = MemberModel.findOne( { _id: objId } );
query.exec( function( err, member )
{
// TODO: get all the members in all the groups that this member is in
var otherMembersInGroups = magicHere();
member.otherMembersInGroups = otherMembersInGroup;
return res.send( 200, member );
}
我的出发点是
var query = MemberModel.find( { groups: "groupNamesHere" } )
但我不太明白如何将它与上述结合起来。
另外:如何正确将此字段添加到猫鼬模型中?我试过了,但有很多重复(见上文)。但是好像不加到模型中,实际上并没有加到成员对象中?
【问题讨论】:
-
似乎缺少了“魔法”。但是你的模型是什么样的? “组”是一个数组吗?你到底想做什么?拥有一个“成员”后,您是否只想匹配所有其他也具有相同组的记录,例如 some 或 any?
-
谢谢,我已将模型代码添加到上面。是的,groups 是一个数组。在我拥有一个“成员”之后,我想向该成员添加一个字段,其中包含该成员所在组中的所有其他成员。示例:您在组 x 中。这是组 x 中的所有其他成员。
-
作为查询结果,我认为这意味着,而不是实际更新整个文档。对吗?
-
向对象添加字段应该发生在将数据发送到客户端之前,是的。
标签: node.js mongodb express mongoose