Mongoose — это популярная библиотека сопоставления объектов и документов (ODM) для Node.js, которая обеспечивает удобный способ взаимодействия с базами данных MongoDB. Одной из важнейших задач при работе с базами данных является поиск и извлечение конкретных документов по определенным критериям. В этой статье мы рассмотрим различные методы, предлагаемые Mongoose для поиска документов, и приведем примеры кода, демонстрирующие их использование.
- Model.find()
Методfind()используется для получения нескольких документов, соответствующих заданному запросу. Он возвращает массив документов или пустой массив, если документы не найдены. Вот пример:
const User = require('./models/user');
User.find({ age: { $gt: 25 } })
.then(users => {
console.log(users);
})
.catch(error => {
console.error(error);
});
- Model.findOne()
МетодfindOne()извлекает один документ, соответствующий критериям запроса. Он возвращает первый соответствующий документ илиnull, если документ не найден. Вот пример:
const User = require('./models/user');
User.findOne({ name: 'John Doe' })
.then(user => {
console.log(user);
})
.catch(error => {
console.error(error);
});
- Model.findById()
МетодfindById()используется для получения документа по его уникальному идентификатору (_id). Он возвращает соответствующий документ илиnull, если документ не найден. Вот пример:
const User = require('./models/user');
User.findById('603d0d3a95f3d6045cf6dfc0')
.then(user => {
console.log(user);
})
.catch(error => {
console.error(error);
});
- Model.find().countDocuments()
МетодcountDocuments()подсчитывает количество документов, соответствующих запросу. Он возвращает обещание, которое разрешается подсчетом. Вот пример:
const User = require('./models/user');
User.find({ isActive: true }).countDocuments()
.then(count => {
console.log(`Active users: ${count}`);
})
.catch(error => {
console.error(error);
});
- Model.find().sort()
Методsort()используется для сортировки полученных документов на основе определенного поля. Он принимает имя поля и необязательное направление (-1 по убыванию, 1 по возрастанию). Вот пример:
const User = require('./models/user');
User.find().sort({ name: 1 })
.then(users => {
console.log(users);
})
.catch(error => {
console.error(error);
});
В этой статье мы рассмотрели несколько методов, предоставляемых Mongoose для поиска документов в базе данных MongoDB. Мы рассмотрели find(), findOne(), findById(), find().countDocuments()и find().sort(), каждую порцию уникальная цель запроса и получения данных. Понимание и использование этих методов позволит вам эффективно искать и извлекать соответствующую информацию из ваших коллекций MongoDB с помощью Mongoose.