我想从mongoose查询中添加返回数据:
User.findById(userId, function(err, data) {
if (!err) {
data.newvar = 'Hello, world';
}
});
Run Code Online (Sandbox Code Playgroud)
但是,当我控制台记录输出时,newvar不存在.我也尝试使用Underscore的扩展:
_.extend(data, {'newvar': 'Hello, world'});
Run Code Online (Sandbox Code Playgroud)
也没有运气.由于我有嵌套文档,使用浅拷贝将无法正常工作.有没有办法在这里附加数据?
Joh*_*yHK 23
处理此问题的一种方法是将您的mongoose模型实例转换为您可以通过调用toObject()它完全控制的普通对象:
User.findById(userId, function(err, data) {
if (!err) {
data = data.toObject();
data.newvar = 'Hello, world';
}
});
Run Code Online (Sandbox Code Playgroud)
如果您需要更结构化的解决方案,可以按照此处的说明将虚拟属性添加到架构中.
事实证明,Mongoose 文档是它们自己的特殊类,而不是标准的 Javascript 对象。为了获得可以扩展的 javascript 选项,您必须使用 toObject() 方法。
| 归档时间: |
|
| 查看次数: |
2920 次 |
| 最近记录: |