В Mongoose для построения запросов с несколькими значениями вы можете использовать оператор $in
. Он позволяет вам указать массив значений и выбрать только те документы, в которых указанное поле имеет значение из этого массива.
Для построения запроса URL для такого запроса вы можете использовать следующий формат:
/api/data?field=value1,value2,value3
Где api/data
- это путь к вашему эндпоинту, field
- имя поля в коллекции MongoDB, а value1
, value2
и value3
- значения, которые вы хотите проверить.
Ниже приведен пример кода на Node.js, демонстрирующий использование оператора $in
в Mongoose:
const express = require('express'); const mongoose = require('mongoose'); const app = express(); // Подключение к базе данных mongoose.connect('mongodb://localhost:27017/myapp', { useNewUrlParser: true }); // Определение схемы const MySchema = mongoose.Schema({ field: String }); // Определение модели const MyModel = mongoose.model('MyModel', MySchema); // Обработчик GET-запроса app.get('/api/data', (req, res) => { // Разбиваем значения из параметра "field" на массив const values = req.query.field.split(','); // Строим запрос с использованием оператора $in const query = { field: { $in: values } }; // Выполняем запрос MyModel.find(query, (err, data) => { if (err) { console.error(err); res.status(500).send('Internal Server Error'); } else { res.json(data); } }); }); // Запуск сервера app.listen(3000, () => { console.log('Server is running on port 3000'); });
В этом примере мы создаем простой Express.js сервер, подключаемся к базе данных MongoDB и определяем модель MyModel
. В обработчике GET-запроса мы разбиваем значения из параметра field
на массив и строим запрос, используя оператор $in
. Затем мы выполняем запрос find
с этим запросом и отправляем результат клиенту в формате JSON.
Надеюсь, это поможет вам понять, как построить запрос URL для вытягивания данных с несколькими значениями в Mongoose.