通过过滤子文件Mongoose查找文档

时间:2017-05-23 11:58:07

标签: node.js mongodb express mongoose

我目前正在使用Express,我想创建一个这样的路线:

router.get('/actionsFiltered/:company/:user/:location',function(req,res,next){
  var query=Action.find({
    company:req.company._id,
    inCharge:req.user._id,
    'event.location':req.location._id,
  })
  .populate({
    path:'event',
    populate:[{path:'eventLocation'},{path:'anomaly'}],
  })...

My Action通过引用Mongo ObjectID的属性“event”来了解事件。我的Event对象有一个属性'location',也指Mongo ObjectID。我希望仅当参数位置与事件拥有的位置ID匹配时才能获取操作,该操作本身由操作拥有。

这是一个动作:

{
    "_id" : ObjectId("591ecadd97d6f32bf0c6f3e7"),
    "company" : ObjectId("58eceb1d2a59fa1c5c4dfc9d"),
    "event" : ObjectId("591174b9ce02550140214bd3"),
}

这是一个事件:

{
    "_id" : ObjectId("591174b9ce02550140214bd3"),
    "location" : ObjectId("586e9559b38f2a101caa77fc"),
}

最后是一个位置:

{
    "_id" : ObjectId("586e9559b38f2a101caa77fc"),
    "name" : "Wsh",
}

'event.location':req.location._id 不起作用,但我不知道如何处理请求。我可以直接在Action对象中添加位置字段,但如果可能的话我不想这样做。

0 个答案:

没有答案