如何在mongoosejs中搜索引用的文档

时间:2014-12-26 10:25:07

标签: node.js mongodb mongoose

我有两个模式OrganizationLocation。在Organization架构上,我引用了位置架构:

Organization = new Schema({
  location: {
    type: Schema.ObjectId,
    ref: 'Location'
  } 
});

Location架构包含国家,州,市,区等字段。

现在我如何搜索具有特定国家/地区或城市的Organization

我在Mongoose Document中找到的是这样的:

Organization
.find()
.populate([{path:'location',select:'country state city district' },
 {/*other population paths*/}] /*Some constriants here*/).exec(function(err, orgs){
   console.log(orgs);
});

如何实现此类搜索。是否有可用于此类参考文档搜索的插件?

1 个答案:

答案 0 :(得分:2)

您可以传递匹配查询以选择特定位置。请阅读文档query_populate

Organization
.find()
.populate([{
   path:'location',
   match : {state : req.query.state} //your query goes here
   select:'country state city district'
}]).exec(function(err, orgs){
  console.log(orgs);
});