Привет Я новичок в мангустов и у меня есть проблемы с коллекции заселить не возвращает никаких данных, я не знаю, почему вот мой код:Mongoosejs: Populate не возвращает никаких данных
Компания Модель
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
Agent = mongoose.model('Agent'),
DBRef = mongoose.SchemaTypes.DBRef;
/**
* Company Schema
*/
var CompanySchema = new Schema({
name: {
type: String,
default: '',
//required: 'Please fill Company name',
trim: true
},
created: {
type: Date,
default: Date.now
},
updated: {
type: Date,
default: Date.now
},
address: {
type: String,
default: '',
//required: 'Please fill Company address',
trim: true
},
locked: {
type: Boolean,
default: true,
},
deleted: {
type: Boolean,
default: false,
},
logo: {
type: String,
default: '',
},
email: {
type: String,
default: '',
index: { unique: true }
//required: 'Please fill Company email',
},
tel: {
type: String,
default: '',
//required: 'Please fill Company tel',
},
fax: {
type: String,
default: '',
//required: 'Please fill Company fax',
},
type: {
type: String,
//required: 'Please fill Company type',
trim: true
},
description: {
type: String,
default: '',
trim: true
},
validator: {
type: Schema.ObjectId,
ref: 'User'
},
admins: [Agent]
});
module.exports = mongoose.model('Company', CompanySchema);
Агент Модель
'use strict';
/**
* Module dependencies.
*/
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
//Company = mongoose.model('Company'),
DBRef = mongoose.SchemaTypes.DBRef;
/**
* Agent Schema
*/
var AgentSchema = new Schema({
// Agent model fields
// ...
firstname: {
type: String,
default: ''
},
lastname: {
type: String,
default: ''
},
email: {
type: String,
default: '',
index: { unique: true }
},
password: {
type: String,
default: ''
},
roles: {
type: Array,
},
created: {
type: Date,
default: Date.now
},
updated: {
type: Date,
default: Date.now
},
deleted: {
type: Boolean,
default: false
},
locked: {
type: Boolean,
default: false
},
workFor: {
type: Schema.ObjectId,
ref: 'Company'
}
});
module.exports = mongoose.model('Agent', AgentSchema);
Populate Код
Company.findById(id).populate('admins').exec(function(err, company) {
if (err) return next(err);
if (!company) return next(new Error('Failed to load Company ' + id));
console.log(company.admins);
req.company = company ;
next();
});
спасибо :).
я сделать это, но это не дает какой-либо reslut – fynx
ну, ваша схема и ваш запрос выглядят правильно (если вы сделали исправление, которое я предложил в ответе выше). Может быть, в вашей базе данных у вас нет объектов компании, содержащих ObjectIds администраторов в коллекции company.admins? вы проверили содержимое своей БД на этот запрос? или покажите нам код, в котором вы сохраняете объекты компании и связанные объекты администрирования. – Reto
thnks, вот мой код ниже – fynx