Как выбрать элементы после поиска в мангусте?

#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. Найдите какой-нибудь элемент для документирования
  2. Получите элемент с некоторыми числами, чтобы начать поиск элемента.

Извините за мой английский. Надеюсь, вы понимаете. Могу я это сделать?

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

1. Вы можете просто запросить весь документ, используя метод find (): mongoosejs.com/docs/api/query.html#query_Query-find

2. Я действительно не понял, что ты имел в виду

Ответ №1:

Сделайте простой запрос и выполните остальные операции в JS.

  1. Вам нужно будет запросить всю коллекцию, отсортированную по вашему полю «имя».
  2. Вам нужно будет получить свой конкретный ассортимент.
 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 переносит фрагмент вашего массива из одного индекса в другой.

Этот код предполагает, что значение существует в массиве, и не проверяет наличие ошибок границ.