从猫鼬检索后无法访问对象 属性

Can't access object property after it being retrieved from mongoose

我正在尝试访问 mongoose

检索到的对象内部的 属性
 const eventToDelete=await EventModel.find({"creator":_id});
         const id_chat=eventToDelete.chat;
         console.log(eventToDelete);  
         console.log(id_chat);  

输出:

[
  {
    _id: new ObjectId("623c71630e1ab7b02941fe51"),
    title: 'House Party',
    description: "This Saturday 10pm",
    type: 'Party',
    lat: -37.50328,
    lng: -52.28816,
    date: 2022-03-24T13:25:27.319Z,
    creator: '623c6de2aeafdc7a0f9ac42d',
    chat: '623c71630e1ab7b02941fe52',
    __v: 0
  }
]
undefined

我读到 console.log 显然没有向我展示真正的交易,因为它改变了响应的结构或类似的东西,但我不明白如何实现我需要的(访问那个值)这就是我寻求帮助的原因....

但我收到以下错误

eventToDelete.toObject is not a function
import mongoose from 'mongoose';

const eventSchema= mongoose.Schema(
    {
        title: {type:String, required:true},
        description:  {type:String, default:''},
        type:  {type:String, default:''},
        img:{type:String, default:''},
        lat:{type:Number, default:0.0},
        lng:{type:Number, default:0.0},
        date:{type:Date, default:new Date()},
        creator: {type:String, required:true},
        chat: {type:String, default:''},
     
    }
)

const EventModel= mongoose.model("EventModel",eventSchema);
export default EventModel;

我错过了什么? 请帮忙!

您无法访问 属性 因为 .find() returns 一个数组。

你可以看到你从console.log(eventToDelete)得到的对象周围有[]

你将不得不做这样的事情

const id_chat = eventToDelete[0].chat;

如果您只希望从查询中获得一个结果,则可以使用 .findOne()

勾选here how to use .findOne()