Mongoose - 改变查询结果记录的内容

时间:2014-05-05 13:39:40

标签: mongodb mongoose

我有一系列记录,这些记录具有内部使用所需的某些特定属性,但是当我将结果发送回用户时,我希望重新安排这些属性。

具体来说,我有一个geo数组,我希望将其分解为latlng属性。

我正在使用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
}

任何想法如何做到这一点?

1 个答案:

答案 0 :(得分:1)

是的,你的模型定义使用post-init事件来进行转换。更多信息: http://mongoosejs.com/docs/middleware.html#post

Schema
    .post('init', function (doc) {
        //do your stuff

    })