有熟悉mongoose的么?求教
我最近用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 回复
貌似mongose不能赋值schame中没有的,可以先复制出来,再赋值。 clone()
多谢 是的我现在就是这么做的,我用的是 var orderJson = order.toObject(). orderJson.xx = xx; 感觉有点麻烦。
实际上我察看了一下,如果直接给order.friendly_date赋值的话,内存里也能看到,就是res.send(model)貌似调用了model的什么方法,不会直接把model的属性拷贝出来。
用vitual path
来代替吧,避免每个逻辑里面都去做赋值操作。
用虚拟属性,没有定义的属性是不会写进去的。虚拟属性的好处就是写不进数据库~还能让你想用就用