Если это поле тем является массивом объектов, и каждый объект содержит имя и заголовок, тогда вы можете искать нужные вам топи c, просто добавьте их к объекту, который вы передали в запрос поиска
* Например, 1002 *. Если вам нужно запросить топи c с именем 'My Topi c', тогда запрос должен быть
Forum.find({ title: req.params.id, 'topics.name': 'My Topic' })
, это сузит результаты запроса, но если на том же форуме есть другие темы с разными именами, они будут указаны в запросе
, например, если на каком-либо форуме есть следующая информация:
{
_id: ObjectId("5e7bf52ebb5b2b09fb46e29f"),
title: 'News & Announcements',
property: 'ACP',
position: 1,
visible: true,
topics: [
{
name: 'Topic 1',
title: 'Title 1'
}, {
name: 'Topic 2',
title: 'Title 2'
}, {
name: 'My Topic',
title: 'My Title'
}
],
}
и Вы ищите topi c 'My Topi c' только в этом форуме, все массивы тем будут возвращены из запроса, так как поиск выполняется по документам
, поэтому вам нужно сделать некоторые javaScript трюк после завершения запроса, чтобы получить только топи c, который имеет имя, которое вы хотели
var myTopic = record.ropics.filter(topic => topic.name === 'My Topic'}
это вернет топи c вы хотели только