如何从另一个模型的引用字段中查询一个模型的文档?

时间:2019-07-25 13:26:13

标签: node.js mongodb mongoose

如何用Place模型中引用的City _id和Food模型中引用的Place模型用猫鼬查询所有食物。 编辑:(示例)如果我选择纽约(城市),我想从纽约获得所有食物。

const FoodSchema = new Schema({
  place: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'Place',
    required: true
}})


const PlaceSchema = new Schema({
  city: {
    type: mongoose.Schema.Types.ObjectId,
    ref: 'City',
    required: true
}})
const CitySchema = new Schema({
  name: {
    type: String}})

1 个答案:

答案 0 :(得分:0)

您可以多次使用populate()。官方文档中的以下代码提供了一个示例,他们在其中查询用户,先填充用户的朋友,然后再填充朋友的朋友:

User.
  findOne({ name: 'Val' }).
  populate({
    path: 'friends',
    // Get friends of friends - populate the 'friends' array for every friend
    populate: { path: 'friends' }
  });

您的情况应该是

Food.find().populate({path: 'place', populate: {path: 'city'}})