Я работал go с MongoDB и NodeJS. Я думаю, что у вас проблемы с определениями. Также вы можете прочитать документацию. https://mongoosejs.com/docs/populate.html
Вам необходимо определить _id для коллекций (Схема).
const userSchema = new mongoose.Schema({
_id: new mongoose.Types.ObjectId(),
name: {
type: String,
required: true,
trim: true
},
pics: [
{
type: mongoose.Schema.Types.ObjectId,
ref: "Pic"
}
],
});
const picSchema = new mongoose.Schema({
_id: new mongoose.Types.ObjectId(),
thumbnail: String,
description: String,
dev: {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
},
);
Итак, когда вы создаете новый Пользователь, _id заполнен (вы можете его сгенерировать или он может быть сгенерирован автоматически) и игнорируйте изображения поля. Когда вы создаете Pi c, вам нужно прочитать _id пользователя и назначить его как 'dev', что-то вроде:
let pic = new Pic({
thumbnail: '', description: '',
dev: yourUser._id
});
Используя этот способ создания документов, вы можете использовать функцию заполнения .