Mongodb — Как я могу объединить два оператора «query.$или» с «query.$и»?

#javascript #filter

Вопрос:

Я хочу отфильтровать документы, которые удовлетворяют

(заголовок = поисковое слово ИЛИ содержание = поисковое слово) И (категория = категория ИЛИ категория = категория).

И я хочу объединить два утверждения ИЛИ, которые являются вариантами 1 и 2 ниже, и я пытался это сделать, но это не работает! Пожалуйста, помогите мне это исправить.

Я хочу сохранить форму варианта 1 и варианта 2 и объединить два утверждения ИЛИ с И .

     //option 1
    query.$or = [{ title: searchWord }, { content: searchWord }]; 

    //option 2
    query.$or = [{ category: category }, { category: category }];


    //It doesn't work!!
    query.$and = [{$or : [{ title: searchWord }, { content: searchWord }]},
                  {$or : [{ category: category }, { category: category }]}];
    
 

Ответ №1:

Это запрос mongodb, который может быть вам полезен. Он использует неявное и. Обязательно замените имя своей коллекции.

 db.collectionName.find({
    $or : [ 
        {"title": searchWord},
        {"content": searchWord}
    ],
    "category": category         
})
 

Комментарии:

1. Я решил эту проблему. Спасибо!