无法在Nodejs和Mongoose的JSON文档中看到添加的字段

时间:2016-04-23 10:47:06

标签: json node.js mongodb mongoose

如果我使用mongoose查询MongoDB这样的简单查询:

rideAnimal

第一个console.log打印:5

但是第二个打印出来了:

User .find() .where('address.loc').near({ center: [lat,lng], maxDistance: 1 }) .exec(function(err, result) { if (err) { request.log(['server', 'database', 'error'], 'An error occured during the execution of the query'); }else{ for(var i=0;i<result.length;++i){ result[i]["distance"] = 5; } console.log(result[0].distance); console.log(result[0]) } });

为什么此文档和结果数组中的其他文档没有字段距离?

1 个答案:

答案 0 :(得分:1)

因为result[0]是一个猫鼬文档对象。当您调用console.log(result[0])时,结果将转换为字符串(使用mongoose document toString函数)。但是mongoose文档不包含distance字段。

要执行您想要的操作,您应该将每个文档转换为对象:

var objects = results.forEach(results, function(res) {
  res = res.toObject();
  res["distance"] = 5;
  return res;
});
console.log(objects[0].distance);
console.log(objects[0]);

http://mongoosejs.com/docs/api.html#document_Document-toObject