mongo-mongoose 如何使这个查询mongoose?

mongo-mongoose how to make this query mongoose?

型号

Models -> id, name, makeid

Makes -> id, name

如何使用品牌名称而不是 ID(“三菱”)进行查询 mongo?例如:

SELECT * FROM models
LEFT JOIN makes on models.makeid = makes.id
where makes.name = "mitsubishi"

如何在 mongo 中实现相同的查询 - mongoose ?

如果你的模型架构是这样写的:

makeid: {type: Schema.Types.ObjectId, ref: 'Makes'}

然后你可以像这样进行人口查询:

Model.findOne({}).populate( {path:'makeid'});

这将 return 一个如下所示的对象:

{id:'mirage', 'name':'Mirage', makeid:{id:'mitsubishi', name:'Mitsubishi'}}

我可能会将模型的 "makeid" 字段命名为 "make" 以使其更加地道。

您还将获得 _id 和任何其他属性。如果要过滤属性,请添加 select 属性:

{path:'makerid', select:'id name'}