我在组织中有一个收藏。每个组织都有成员。我想运行查询来检查用户是否是该组织的成员。
我尝试了这个:
mongoose.model('organization').find({orgId: paramOrgId}, function(err, organization){
organization.find({'members.user':req.user._id}, function(err, user){
if(!user) res.send(401) //The user is not a member in organization
if(user) res.send(200);
});
}
return res.send(401);
});
显然您没有在回调中“查找”。我应该怎么做呢?
组织文档示例:
> db.organizations.find().forEach(printjson);
{
"_id" : ObjectId("5381d5d11409f125475fcc90"),
"orgId" : 5,
"title" : "ExampleCorp",
"members" : [
{
"tier" : 1,
"user" : ObjectId("5381d5d11409f125475fcc8c")
},
{
"tier" : 2,
"user" : ObjectId("5381d5d11409f125475fcc8d")
},
{
"tier" : 3,
"user" : ObjectId("5381d5d11409f125475fcc8e")
}
]
}
如果您只想检查用户是否是组织的成员,这是一个查询。
// Use findOne so that it returns one document instead of a collection
mongoose.model('organization').findOne({
// Instead of querying twice, just set both conditions
'orgId': paramOrgId,
'members.user':req.user._id
},
'_id', // We'll just select the _id field. We don't need the whole organization document
function (err, org) {
if (err)
return res.send(500); // Error!
if (org)
return res.send(200);
else
return res.send(401);
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句