跳到主要内容
CNode

有熟悉mongoose的么?求教

社区
Zzzswang发布于 14 年前最后回复 13 年前
458630

我最近用mongoose从mongodb取数据遇到下面这样的问题,求高手解答。

Order.find(query, function(err, orders) {
  if(err) console.log(err);
  orders.forEach(function(order){
    order.friendly_date = dateUtil.format_date(order.date, true);
  });
  res.send(orders);
});

这里我发现friendly_date 根本写不进去,传到页面上的orders里 压根没这个key。这是为什么呢?我看nodeClub也这样用,为什么它就可以?

多谢多谢

查看回复

回复 (4)

A
a272121742#413 年前

用虚拟属性,没有定义的属性是不会写进去的。虚拟属性的好处就是写不进数据库~还能让你想用就用

H
heroicyang#313 年前

vitual path来代替吧,避免每个逻辑里面都去做赋值操作。

Z
zzswang#214 年前

多谢 是的我现在就是这么做的,我用的是 var orderJson = order.toObject(). orderJson.xx = xx; 感觉有点麻烦。

实际上我察看了一下,如果直接给order.friendly_date赋值的话,内存里也能看到,就是res.send(model)貌似调用了model的什么方法,不会直接把model的属性拷贝出来。

R
romboo#114 年前

貌似mongose不能赋值schame中没有的,可以先复制出来,再赋值。 clone()

参与回复

登录后即可参与回复。登录