gpt4 book ai didi

node.js - 为什么 Mongoose 将虚拟字段填充为数组而不是单个项目?

转载 作者:可可西里 更新时间:2023-11-01 10:45:58 26 4
gpt4 key购买 nike

我想用 mongoose 作为 JSON 对象将一个对象填充到一个虚拟字段中,但它总是返回一个包含单个项目的数组。

这是我的方案代码(带有虚拟字段的部分):

Order.virtual('client', {
type: 'ObjectId',
ref: 'User',
localField: 'clientId',
foreignField: '_id'
});

这是我做人口的方法:

Order.findOneAndUpdate({ internalStatus: 2}, { internalStatus: 3 })
.lean()
.populate({ path: 'client', select: 'email' })
.exec(function (err, order) {
//...
});

这是我在返回的 JSON 中收到的内容:

{ _id: 5ad903d90443fe13b8c9061a,
client: [ { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } ] }

这是我想要实现的:

{ _id: 5ad903d90443fe13b8c9061a,
client: { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } }

感谢您的任何帮助或建议!

最佳答案

您必须将“justOne : true”添加到您的虚拟字段配置中:

Order.virtual('client', {
type: 'ObjectId',
ref: 'User',
localField: 'clientId',
foreignField: '_id',
justOne : true

});

关于node.js - 为什么 Mongoose 将虚拟字段填充为数组而不是单个项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52353497/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com