Разве нельзя использовать $ внутри $ или?

Я пытаюсь отфильтровать базу данных по списку ключевых слов, и сейчас я использую $ или для всех полей модели и для каждого поля использую $ in для проверки всех ключевых слов. регулярное выражение х.

key_exps - это массив регулярных выражений. Для моего тестирования это массив с одним элементом:/good/i.

//This is my code that I'm trying to fix:    
Ingredient.find({$or:[
    {name: {$in: key_exps}}, 
    {number: {$in: key_exps}},
    {vendor_info: {$in: key_exps}},
    {package_size: {$in: key_exps}},
    {cost: {$in: key_exps}},
    {comment: {$in: key_exps}}]
}, (err, ingredients) => {
    res.json({data: ingredients});
});

//This code works but doesn't allow me to search through multiple keywords:
Ingredient.find({$or:[
    {name: {$in: key_exps}}, 
    {number: {$in: key_exps}},
    {vendor_info: {$in: key_exps}},
    {package_size: {$in: key_exps}},
    {cost: {$in: key_exps}},
    {comment: key_exps.pop()}]
}, (err, ingredients) => {
    res.json({data: ingredients});
});

//This also works but doesn't allow me to search all fields:
Ingredient.find(
    {comment: {$in: key_exps}}, (err, ingredients) => {
    res.json({data: ingredients});
);
0
вам может быть интересно создать текстовый индекс и использовать его вместо
добавлено автор vu1p3n0x, источник
pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

Node.js — русскоговорящее сообщество
Node.js — русскоговорящее сообщество
4 160 участник(ов)

Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было комфортным. Правила: https://rudevs.network/ByaMH6un7 См. также: @js_ru, @react_js, @angular_ru, @vuejs_ru, @devops_ru Вакансии и поиск работы: @javascript_jobs и @nodejs_jobs

DBA - русскоговорящее сообщество
DBA - русскоговорящее сообщество
1 345 участник(ов)

Общаемся и обсуждаем темы, посвященные DBA, PostgreSQL, Redis, MongoDB, MySQL, neo4j, riak и т.д. См. также: @devops_ru, @kubernetes_ru, @docker_ru, @nodejs_ru Рекомендуем сразу отключить уведомления, чтобы пребывание здесь было полезным и комфортным.

MongoDB Russian
MongoDB Russian
1 086 участник(ов)

> db.stats() https://combot.org/chat/-1001035023078

Node: русскоязычное сообщество
Node: русскоязычное сообщество
28 участник(ов)

Независимое сообщество node разработчиков на русском языке. Правила: https://node-chat.ru/ Партнеры: @react_ru @ru_vuejs @nuxtjs_ru @ru_docker @nlp_ru