Я асинхронно запрашиваю базу данных и получаю результат.
const games=await new Promise(res=>{Game.find({ids:id},(err,doc)=>res(doc))})
console.info(games[0])
Когда я распечатываю результат, я получаю следующее
{ gameId:'8636f1b196f1c6aa164341be448126ba',
done: '1',
score: [],
finishedAt: '' }
Но затем, когда я делаю console.info(games[0].done), я получаю undefined, тогда как ожидаемый результат - 1
Покажите схему, поскольку существует вероятность несоответствия между документом и схемой. Кстати, const games = await Game.find() отлично работает, поскольку методы мангуста уже возвращают обещание.
@NeilLunn спасибо, я не определил это как поле в моей схеме
Как уже говорилось, это будет несоответствие схемы. Вы можете исправить схему или обойти ее с помощью toObject() или добавления lean() в запрос, то есть Game.find(...).lean(). Просто обратите внимание, что один добавленный здесь ответ был немного лучше при «использовании google», поскольку это просто контент, почерпнутый из одного из «чрезмерно задействованных» подходов к ответу.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В вашем вопросе нет JSON. (И если то, что вы процитировали, использовалось как JSON, это было бы недействительным JSON.) JSON - это текстовая нотация для обмена данными. (Подробнее здесь.) Если вы имеете дело с исходным кодом JavaScript, а не имеете дело с нить, вы имеете дело не с JSON.