我正在尝试修改obj中的一项(集合中查找的结果)
收藏
name: {},
date: {}
集合中的示例文档
[
{name: "pedro", date: "2018/01/01"},
{name: "juan", date: "2018/02/02"}
]
Nodejs,猫鼬
Collection.find().exec((err, result)=>{
for(var i = result.length - 1; i >= 0; i--){
result[i].date = "test";
}
res.send(result);
})
获取路线
[
{name: "pedro", date: "2018/01/01"},
{name: "juan", date: "2018/02/02"}
]
而不是我期望的
[
{name: "pedro", date: "test"},
{name: "juan", date: "test"}
]
我正在寻找一个新的obj数组,但是还有另一种方法吗?有什么建议吗?
谢谢
答案 0 :(得分:2)
首先,您需要将猫鼬文档转换为对象。
Collection.find().exec((err, result)=>{
result = result.map(doc => doc.toObject()); // add this
for(var i = result.length - 1; i >= 0; i--){
result[i].date = "test";
}
res.send(result);
})
还有另一个选择:您可以使用猫鼬lean()
方法获取普通对象而不是文档。这种方法应该比第一种具有更好的性能。
以下是使用lean()
的查询的简短示例
Collection.find().lean().exec((err, result)=>{ // notice lean() before exec
for(var i = result.length - 1; i >= 0; i--){
result[i].date = "test";
}
res.send(result);
})
详细了解lean()
方法here