Запросы Mongoose / Mongodb не работают с объектами TypeScript - PullRequest
0 голосов
/ 16 октября 2018

Я использую Node.js с mongoose вместе с Typescript.И на основе SO потоков, таких как эта очереди должна работать и с моей функцией:

 let conditions = {};
        conditions['belongsToRestaurant'] = dto.restId;
 conditions['belongsToRestaurant']

    await Order.findOne({conditions}).then((doc) => {
                console.log('doc');
                console.log(doc);
            })

Консоль всегда записывает правильное значение для restId и всегда ноль для doc.

Я перепробовал все варианты, которые только мог придумать.Я создал объект с помощью конструктора, создал объект с установленным свойством, попробовал с классами ничего не работает.Я пытался использовать типы мангуста, такие как:

conditions['consumerName'] = new mongoose.Schema.Types.String("asasd");
conditions['belongsToRestaurant'] = mongoose.Types.ObjectId(dto.restId);

Пока ничего не получалось.Спасибо за чтение и помощь заранее!

  • Обозначения: Имейте в виду, что эти поля, на которые я ссылаюсь, не находятся в массиве, или в поддокументе, или в чем-либо подобном.И работают совершенно нормально, когда я не использую объекты для обновления.

1 Ответ

0 голосов
/ 16 октября 2018

Просто небольшая ошибка переноса объекта условия внутри объекта.

Удаление фигурных скобок из функции findOne решит проблему.

const conditions = {};
conditions.belongsToRestaurant = dto.restId;

await Order.findOne(conditions)
  .then((doc) => {
    console.log('doc');
    console.log(doc);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...