我有一系列记录,这些记录具有内部使用所需的某些特定属性,但是当我将结果发送回用户时,我希望重新安排这些属性。
具体来说,我有一个geo
数组,我希望将其分解为lat
和lng
属性。
我正在使用Mongoose,并且想知道在搜索过程中是否有办法在记录结果上使用pre/post
钩子(我用它'保存'),以便在结果出现之前修改记录返回。
所以,在数据库中,如果我们有:
{
name: 'Foo Bar',
geo: [-0.12, 32.17]
},
{
name: 'Pizza',
geo: [-0.09, 34.51]
}
查询的结果将是:
{
name: 'Foo Bar',
lat: 32.17,
lng: -0.12
},
{
name: 'Pizza',
lat: 34.51,
lng: -0.09
}
任何想法如何做到这一点?
答案 0 :(得分:1)
是的,你的模型定义使用post-init事件来进行转换。更多信息: http://mongoosejs.com/docs/middleware.html#post
Schema
.post('init', function (doc) {
//do your stuff
})