#javascript #node.js #mongodb #algorithm #mongoose
Вопрос:
Меня интересует одна такая проблема:
изначально у нас есть документ в базе данных. например:
[ {name: 1} , {name: 2}, {name: 3} , {name: 4} , {name: 5} , {name: 6} , ....]
Я хочу найти какой-нибудь элемент. например, я получаю второй элемент: {name: 2}
Моя проблема в этом. после поиска я хочу получить некоторый элемент массива. например 3
, элементы. и ответьте на это: [{name: 2}, {name: 3} , {name: 4}]
. Я могу легко решить эту проблему, c
но как я могу решить ее в мангусте и javascript?
Проблема в этом:
- Найдите какой-нибудь элемент для документирования
- Получите элемент с некоторыми числами, чтобы начать поиск элемента.
Извините за мой английский. Надеюсь, вы понимаете. Могу я это сделать?
Комментарии:
1. Вы можете просто запросить весь документ, используя метод find (): mongoosejs.com/docs/api/query.html#query_Query-find
2. Я действительно не понял, что ты имел в виду
Ответ №1:
Сделайте простой запрос и выполните остальные операции в JS.
- Вам нужно будет запросить всю коллекцию, отсортированную по вашему полю «имя».
- Вам нужно будет получить свой конкретный ассортимент.
let values = db.collection.find().sort( { name: 1 } ).exec((err, docs) =>{
//docs are your values
let docIndex = docs.findIndex((a)=>{
return a.name == 2;
});
let docsInRange = docs.slice(docIndex ,docIndex 3);
});
findIndex находит индекс для требуемого документа базы данных в массиве.
slice переносит фрагмент вашего массива из одного индекса в другой.
Этот код предполагает, что значение существует в массиве, и не проверяет наличие ошибок границ.