Единственное, что я пытаюсь сделать, это вернуть ключ messages
из MongoDB, используя Mon goose в Express, но это оказывается немного сложнее, чем должно, в основном из-за всех старые ответы и способы сделать это. Так что лучше поспрашивать и оставить что-нибудь для тех, кто пытается достичь того же.
Это схема, которая содержит ключ сообщений:
const UserMessagesScheme = new mongoose.Schema({
email: {
type: String,
required: true
},
messages: {
type: Object,
required: true,
default: {}
}
}, {minimize: false});
Что я пробовал:
const messages = await Messages.findOne({email}, general).schema.paths.messages;
const messages = await Messages.findOne({email}, general).schema.tree.messages;
const messages = await Messages.findOne({email}, general).lean().messages;
const messages = await Messages.findOne({email}, general).lean().exec((err, res) => res.messages);
const messages = await Messages.findOne({email}, general).lean().exec((err, res) => res._doc.messages);
const messages = await Messages.findOne({email}, general).lean().exec((err, res) => res.toObject().messasges);
// And a heck of a lot more...
console.log(resData.messages);
Что работает?
const messages = await Messages.findOne({email}, general).then(res => res.messages);
console.log(resData.messages);
Хотя мне удалось заставить его работать с .then () Я не совсем уверен это практично, потому что, как вы, вероятно, можете сказать, эта строка кода выполняется внутри функции asyn c, поэтому я хотел бы найти способ сохранить чистоту, используя те же значения.
Другой способ сделать это, который работал, был примерно таким:
const messages = await Messages.findOne({email}, general).lean();
const messagesFromMessages = messsages.messages;
console.log(resData.messages);
Я почти уверен, что мне что-то не хватает, и что мне нужны некоторые знания, чтобы asp это , как таковой, и поскольку другие люди могут столкнуться с этим снова, мне бы очень хотелось, чтобы некоторые ссылки do c или что-то объясняющее то, что я не знаю, кроме примера кода: это то, что вы должны были сделать, пожалуйста.
Всем привет! * 1 022 *