У меня есть документ с вложенными документами:
var childSchema = new Schema({ name: 'string' });
var Child = mongoose.model("Child", childSchema);
var parentSchema = new Schema({
children: [childSchema],
child: childSchema
});
var Parent = mongoose.model("Parent", parentSchema);
и документами, которые ссылаются на вложенный документ:
var sibling1Schema = new Schema({
nieces: [{type: mongoose.Schema.ObjectId, ref: "Child"}]
});
var Sibling1 = mongoose.model("Sibling1", sibling1Schema);
var sibling2Schema = new Schema({
preferredNephew: {type: mongoose.Schema.ObjectId, ref: "Child"}
});
var Sibling2 = mongoose.model("Sibling2", sibling2Schema);
Проблема, с которой я сталкиваюсь, - это когда у меня есть экземпляры sibling1Schema
и sibling2Schema
, и я пытаюсь заполнить nieces
или preferredNephew
, эти атрибуты соответственно возвращаются как null
и []
.
Код населения выглядит следующим образом:
const sib1Array = await Sibling1.find().populate("nieces");
const sib2Array = await Sibling.find().populate("preferredNephew");
Я определенно могу видеть идентификаторы объектов в экземплярах sibling1Schema
и sibling2Schema's
, которые являются действительными ссылками на объекты по ссылкам родительской схемы.
Это ожидалось, и я что-то упустил или я что-то не так делаю?