У меня есть запрос, который перенастраивает массив документов в виде обещания (.exec).
Далее у меня есть (обещанная) функция, которая также возвращает массив. Оба они объединены в Promise.all.Возвращает массив из Model.findOne?
Теперь я хочу переместить .find
на .findOne
, чтобы ускорить фильтр. Но с findOne
я бы не получил массив обратно. Поэтому я решил использовать .find().limit(1)
Мой вопрос в том, что это действительный подход, а не использование .findOne, а если нет: есть ли простой способ вернуть результат findOne в виде массива? Может быть, с .lean
?
var query = Model.find({ $and: [ { _id: id },
{ $or: [ { owner: userID },
{ isPublic: true } ]}
]}).limit(1);
Promise.all([query.exec(), this._sources(user)]).then((doc: Array<any>) => {....}
Не уверен, что это поможет или нет. Вы пытались использовать [toArray()] (https://docs.mongodb.com/manual/reference/method/cursor.toArray/)? – Shrabanee