Ale*_*lom 6 mongoose mongodb node.js mongoose-populate mongoose-schema
我想用 mongoose 作为 JSON 对象将一个对象填充到一个虚拟字段中,但它总是返回一个包含单个项目的数组。
这是我的方案代码(部分带有虚拟字段):
Order.virtual('client', {
type: 'ObjectId',
ref: 'User',
localField: 'clientId',
foreignField: '_id'
});
Run Code Online (Sandbox Code Playgroud)
这是我如何做人口:
Order.findOneAndUpdate({ internalStatus: 2}, { internalStatus: 3 })
.lean()
.populate({ path: 'client', select: 'email' })
.exec(function (err, order) {
//...
});
Run Code Online (Sandbox Code Playgroud)
这是我在返回的 JSON 中收到的内容:
{ _id: 5ad903d90443fe13b8c9061a,
client: [ { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } ] }
Run Code Online (Sandbox Code Playgroud)
这就是我想要实现的目标:
{ _id: 5ad903d90443fe13b8c9061a,
client: { _id: 5b3755fe69635d1e942d00a8, email: 'user@user.com' } }
Run Code Online (Sandbox Code Playgroud)
感谢您的任何帮助或建议!
您必须将“ justOne : true ”添加到您的虚拟字段配置中:
Order.virtual('client', {
type: 'ObjectId',
ref: 'User',
localField: 'clientId',
foreignField: '_id',
justOne : true
});
Run Code Online (Sandbox Code Playgroud)
在 mongoose mongoose@5.0.17 中,我看到它们作为 JSON_OBJECT 返回,但是当我升级到 mongoose@5.3.0 时,它开始重新调整为 JSON_ARRAY
| 归档时间: |
|
| 查看次数: |
1099 次 |
| 最近记录: |