mongodb - Mongoose - 修改帖子查找结果
问题描述
我想在 `schema.post('find')' 中间件中修改结果,但这似乎是不可能的:
const PersonSchema = new mongoose.Schema({ name: String })
PersonSchema.post('find', function(result) {
console.log('HOOW: Post Find', result)
result.team("Real Madrid")
return result
})
const Person = mongoose.model('Person', PersonSchema)
每当我尝试执行查找查询时,都会执行 console.log 语句,但是team
永远不会添加该字段。
如何将此字段添加到我的结果中?
笔记:
我的真实代码有点复杂,我需要对数据库进行一些查询并将这些结果添加到find
查询结果中。
解决方案
要向查询返回的文档添加其他字段,您可以使用lean():
Person.find({...}).lean();
而且因为find()
方法的结果是一个数组,所以你需要遍历它并向每个元素添加字段:
PersonSchema.post('find', function(result) {
console.log('HOOW: Post Find', result)
result.forEach(val => val.team="Real Madrid");
return result
})
推荐阅读
- python - 如何用预定的解决方案制作数独板
- javascript - 如何使用 Jquery 实现动态引导 4 手风琴
- r - 如何使用 jtools 包中的 coef_plot 在系数图中更好地标记分类变量
- apache-spark - Pyspark:Python 工作者因 LLVM 错误而崩溃
- python - 用 Pandas 计算零的数量
- javascript - 草稿编辑器中的突出显示功能不起作用
- c# - 使用 Firebase 通知打开链接/PWA
- pdf - 在 vb6 中打印 .pdf 而无需预览 Adobe Reader
- node.js - 如何在 Node.js 缓冲区中存储对象?
- node.js - 使用 SQLite3 构建 Electron 应用程序时出错:npm ERR!代码生命周期