Mongoose .populate 未在 JSON 中显示

Posted

技术标签:

【中文标题】Mongoose .populate 未在 JSON 中显示【英文标题】:Mongoose .populate not showing in JSON 【发布时间】:2021-09-30 06:56:06 【问题描述】:

我有一些代码填充了一个名为“用户”的部分。当我 console.log 结果我得到一个很好的填充文档,如下所示:

[  _id: 60f92778ceefc423d834d9c0,
title: 'Vaatwasser',
day: 0,
house: '60f455b1e0394e12a226045a',
user:  _id: 60f4142ff55f81251a7224ff, name: 'Lucas Blommers' ,
createdAt: 2021-07-22T08:08:24.477Z,
updatedAt: 2021-07-22T08:08:24.477Z,
__v: 0 ,
 _id: 60f92788ceefc423d834d9c3,
title: 'Koken',
day: 0,
house: '60f455b1e0394e12a226045a',
user:  _id: 60f4142ff55f81251a7224ff, name: 'Lucas Blommers' ,
createdAt: 2021-07-22T08:08:40.712Z,
updatedAt: 2021-07-22T08:08:40.712Z,
__v: 0  ]

但是当我使用 android 或 Postman 请求数据时,我得到以下结果:


        "_id": "60f92778ceefc423d834d9c0",
        "title": "Vaatwasser",
        "day": 0,
        "house": "60f455b1e0394e12a226045a",
        "user": ,
        "createdAt": "2021-07-22T08:08:24.477Z",
        "updatedAt": "2021-07-22T08:08:24.477Z",
        "__v": 0
    ,

如您所见,用户在发送后是一个空对象。 这是 JSON 库中的错误还是我在服务器上做错了什么。

-编辑- 这是服务器端代码:

const housekeepings = await Housekeeping.find(day:day, house: 
house).populate("user", "name")
                                
console.log(housekeepings)

return res.send(housekeepings)

【问题讨论】:

你可以试试await Housekeeping.find(day:day, house: house).populate("user", "name").lean() 【参考方案1】:

"你可以试试 await Housekeeping.find(day:day, house: house).populate("user", "name").lean() – Cuong Le Ngoc"

这就是答案。非常感谢Cuong。

【讨论】:

以上是关于Mongoose .populate 未在 JSON 中显示的主要内容,如果未能解决你的问题,请参考以下文章

mongoose.populate() 未显示填充内容

19-3-18 mongoose 连表查询populate用法

Mongoose .populate 随机

mongoose 文档 Population

Mongoose .populate() 不填充

Model.populate() 不是 Mongoose 中的返回文档