javascript - 无法向 Mongoose 函数中的对象添加属性

标签 javascript node.js object mongoose

我有一个函数可以从数据库中获取一些数据并将其绑定(bind)到某个变量:

exports.getAccDoc = function(req, res, send, next) {
var AccDoc = require('../models/accdoc');

AccDoc.find({
   startup_id: req.startup.startup_id
}).exec().then(function(accDocs) {
  vm.accDocs = accDocs; //I'm using vm in my view
  console.log(vm.accDocs); //logs a array that contains one object
  console.log(vm.accDocs[0]); //you know
  vm.accDocs[0].test = 'TEST'; //trying to add some property to the object
  console.log(vm.accDocs[0].test); //logs TEST like it should be
  console.log(vm.accDocs[0]); //logs an object, But it doesn't contain test property
  send(res); //sending vm to view
});
};

为什么我的对象在添加 test 属性后没有改变?

(虽然我可以更改属性的现有值,但不能添加新属性)

最佳答案

那是因为从 Mongoose 返回的结果是一个 Mongoose 对象而不是一个普通的 javascript 对象。您需要使用 lean获取可以玩的普通对象的方法。

AccDoc.find({
   startup_id: req.startup.startup_id
}).lean().exec().then(function(accDocs) {
  ...

关于javascript - 无法向 Mongoose 函数中的对象添加属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34272988/

相关文章:

javascript - jQuery 无法识别函数

javascript - 在 CSS3 旋转后检索元素的正确 offsetTop 和 offsetLeft

javascript - Angularjs 使用 forEach

node.js - MongoDB 获取有条件字段的 SUM

node.js - 如何使用 AWS S3 签名 url 从 Postman 上传文件?

javascript - 计算示例文本的 2 个给定单词之间的距离

node.js - 是否有用于 JavaScript 的 LUA 之类的脚本语言?

python - 将python语句转换为字符串

c# - 使用包含另一个对象数组的对象的反射读取属性

javascript - 传递未知数量的对象属性