#node.js #mongodb #mongoose
#node.js #mongodb #мангуст
Вопрос:
Прежде всего, я совершенно новичок в MongoD, и я много искал, не нашел никакого решения или, возможно, я искал неправильно. Допустим, у меня есть следующие документы
const personSchema = Schema({
_id: Schema.Types.ObjectId,
name: String,
age: Number,
stories: [{ type: Schema.Types.ObjectId, ref: 'Story' }]
});
const storySchema = Schema({
author: { type: Schema.Types.ObjectId, ref: 'Person' },
title: String,
fans: [{ type: Schema.Types.ObjectId, ref: 'Person' }]
});
Я могу запросить таких людей с их историями
const persons = await Person.find().populate('stories');
Мне нужно запросить людей, у которых есть истории от определенного автора
const persons = await Person.find({"stories.author":"someobjectid"}).populate('stories');
// This didn't work*/
Возможно ли выполнить такой запрос или мне нужно изменить схему person
Ответ №1:
Если вы хотите найти что-либо по ObjectId, вам нужно использовать этот синтаксис:
const persons = await Person.find({"stories.author":mongoose.Types.ObjectId(author_id)}).populate('stories');//<==== Replace author_id with your actual variable.