我需要一些帮助来用猫鼬填充子文档,我在互联网上进行了很多搜索,但没有找到解决问题的方法。
我有两个方案:
1-InfraServer
var InfraServerSchema = new Schema({
_id : String,
equipe : String,
servidor : String,
memoria : String,
processador : String,
modelo : String,
so : String,
usuario : String
},{ collection: 'infraserver' });
var InfraServer = mongoose.model('InfraServer', InfraServerSchema);
module.exports = InfraServer;
2-InfraDataBase
var InfraDataBaseSchema = new Schema({
_id : String,
equipe : String,
nome_base : String,
vipname : String,
tipo_banco : String,
versao: String,
servidores : [{ type : mongoose.Schema.Types.ObjectId, ref: 'InfraServer' }],
tnsnames : String
},{ collection: 'infradatabase' });
var InfraDataBase = mongoose.model('InfraDataBase', InfraDataBaseSchema);
module.exports = InfraDataBase;
我正在尝试在routes文件夹中填充如下所示的数组servidores,但是当我打印seeds变量时,数组返回空,并且需要servidores.servidor(InfraServer中的字段),servidores._id会正确填充。
InfraDataBase.find().where('equipe').in(req.session.userInf.equipe).populate('servidores').exec(function(err, seeds){
if( err || !seeds) console.log("No seeds found");
else
{
console.log("--->>> " + seeds);
}
可以帮助我找到解决此问题的方法。
ks
最佳答案
尝试将_id的SchemaType更改为ObjectId。
_id : ObjectId
此外,您无需显式声明_id字段。它是为所有Mongoose模式自动创建的。