Node.js 使用mongoose呈现所有文档的每个子文档

Node.js 使用mongoose呈现所有文档的每个子文档,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我有一个用户模型和一个宠物模型,使用猫鼬 用户模型: var userSchema = mongoose.Schema({ email : String, password : String, pets : [Pet.schema] }); module.exports = mongoose.model('User', userSchema); 宠物型号: var petSchema = mongoo

我有一个用户模型和一个宠物模型,使用猫鼬

用户模型:

  var userSchema = mongoose.Schema({
     email        : String,
     password     : String,
     pets         : [Pet.schema]

   });

   module.exports = mongoose.model('User', userSchema);
宠物型号:

   var petSchema = mongoose.Schema({
    name         : String
    });

   module.exports = mongoose.model('Pet', petSchema);
我想在一个页面中呈现所有用户的所有宠物。我试着做:

    app.get('/pets', function(req, res) {

    Pet.find({}, function(err, pets){

       res.render('pets.ejs', {"pets":pets});

    });
});
但我只得到一个空数组[]

我怎样才能得到每一只宠物

更一般地说,我将不得不独立于用户使用Pet模型。我应该改变构建模型的方式吗


谢谢你的帮助

看起来您正试图嵌入
Pet
子文档,并将其用作未嵌入的文档

首先,如果您正在执行嵌入式操作,则需要在使用Pet之前定义它的模式(首先创建它)。如果你正在嵌入,你就无法通过这种方式找到宠物的模型

相反,如果您想在
用户
中存储对
宠物
的引用,则需要存储其
对象ID

pets : [{ type: Schema.Types.ObjectId, ref: "Pet"}]

然后,您可能会在运行时使用填充
pets
属性

非常感谢!事实上,我必须改变我的模式,做一个参考。