У меня есть две услуги по перьям, одна для профилей, а другая для этикеток.
Профиль может иметь массив меток ObjectId из других коллекций.
Теперь у меня есть вход для поиска и пользователь вводит "linux"
Профиль foo должен быть возвращен, поскольку он содержит идентификатор «594ceeff6905e622425f523b» в массиве меток.
Такой поисковый запрос через ObjectId между объектами возможен через перышки?
Профили
Модель мангуста
{
name: { type: String, trim: true, required: true },
labels: [{ type: ObjectId, ref: 'Labels' }],
}
Feathers api для получения ответов на профили
получить http://localhost:3030/profiles
{
"name" : "foo",
"labels" : [
"594ceeff6905e622425f523b",
"594ceeff6905e622425f523c",
"594ceeff6905e622425f523d"
],
}
{
"name" : "bar",
"labels" : [
"594ceeff6905e622425f523e",
"594ceeff6905e622425f523d"
],
}
Этикетки
Модель мангуста
{
name: { type: String, trim: true, unique: true, required: true },
}
Feathers api получает ответ на ярлыки
получить http://localhost:3030/labels
{
"_id": "594ceeff6905e622425f523b",
"name": "linux"
},
{
"_id": "594ceeff6905e622425f523c",
"name": "systemd"
},
{
"_id": "594ceeff6905e622425f523d",
"name": "mongodb"
},
{
"_id": "594ceeff6905e622425f523e",
"name": "javascript"
}
Теперь мне нужно заполнить все метки в ответе профилей, отправить все профили, а затем отфильтровать их вперед с этим значением ввода для поиска.
По мере роста базы данных это будет очень неэффективно, должен существовать лучший способ сделать это, верно?