CoreMongooseArray в обычный массив

Я вношу в список 2 элемента из одной схемы и хочу обновить в другой схеме. для этого я использовал метод среза, чтобы составить список первых двух элементов из массива. но получаю

CoreMongooseArray ['элемент1','элемент2']

вместо ["элемент1", "элемент2"]

Как удалить «CoreMongooseArray»?

connection.connectedusers.find({},  async (err, docs) => {
if (err) throw err;
var users = docs[0].connectArray;
if (docs[0] != null && users.length >= 2) {
 var shortListed = users.slice(0, 2);
 try {
                await connection.chatschema.updateMany({}, { $push: { usersConnected: [shortListed] } }, { upsert: true });
            } catch (err) {
                res.status(201).json(err);
            }
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
10
0
6 822
4
Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

Вам нужно добавить lean() к вашему запросу.

Из документы:

Documents returned from queries with the lean option enabled are plain javascript objects, not Mongoose Documents. They have no save method, getters/setters, virtuals, or other Mongoose features.

Если у вас уже есть массив мангуста и вы хотите преобразовать его в простой массив js

const jsArray = mongooseArray.toObject();

https://mongoosejs.com/docs/api/array.html#mongoosearray_MongooseArray-toObject

У меня почему-то .toObject() не сработало. lean() вариант работает, но он не подходит, когда у вас уже есть объект с массивом мангустов. Итак, если у вас уже есть массив мангуста и вы хотите просто преобразовать его в простой массив js, вы можете использовать следующий код:

function mongooseArrayToArray(mongooseArray) {
  const array = [];
  for (let i = 0; i < mongooseArray.length; i += 1) {
    array.push(mongooseArray[0]);
  }
  return array;
};

Применение:

const array = mongooseArrayToArray(mongooseArray);

Если вы просто хотите преобразовать CoreMongooseArray в обычный массив, ничего не меняя:

const jsArray = [...mongooseArray];

Другие вопросы по теме