Javascript Node.js Mongoose“;对象。newProperty“;无法将新属性添加到对象

Javascript Node.js Mongoose“;对象。newProperty“;无法将新属性添加到对象,javascript,node.js,mongoose,Javascript,Node.js,Mongoose,我正在使用mongoose从Mongo获取字段,并尝试为返回的结果分配一个新密钥。但是,在分配新密钥后记录对象时,该密钥不在记录的对象中 奇怪的是,如果我记录obj.newKey,它会像预期的那样被记录,但是在记录整个对象时,对象中似乎缺少了 const express = require('express'); const router = express.Router({ mergeParams: true }); const V = require('../../../models/KB

我正在使用mongoose从Mongo获取字段,并尝试为返回的结果分配一个新密钥。但是,在分配新密钥后记录对象时,该密钥不在记录的对象中

奇怪的是,如果我记录obj.newKey,它会像预期的那样被记录,但是在记录整个对象时,对象中似乎缺少了

const express = require('express');
const router = express.Router({ mergeParams: true });

const V = require('../../../models/KB/V');

router.post('/fetch-v', async (req, res) => {
  const { idSC, idDC, idP, from, to } = req.body.tp;
  const nds = Math.ceil((to - from) / 86400000 + 1);
  // All set. Now query database for visas:
  let vs = await V.find({
    idSC,
    idDC,
    idP
  }).exec();
  vs.map(v => {
    v.nds >= nds ? (v.applicable = true) : (v.applicable = false);
    console.log('v.applicable:', v.applicable); // Refer Log 1
  });
  console.log('vs:', vs); // Refer Log 2
  return res.send({ success: true, vs });
});
日志1

v.applicable: true
v.applicable: false
日志2

{
  "success": true,
  "vs": [
      {
          "_id": "5d51acd41255b4499021bffa",
          "idSC": "5d4e9273928a933e44ba8b56",
          "idDC": "5d4e7318c8562b2bf6e4c33f",
          "idP": "5d4e74742e0e3c2d2ab5428e",
          "nds": 89,
          "createdAt": "2019-08-12T18:15:48.329Z",
          "updatedAt": "2019-08-12T18:15:48.329Z",
          "__v": 0
      },
      {
        "_id": "5d51acd41255b4499021bffb",
        "idSC": "5d4e9273928a933e44ba8b56",
        "idDC": "5d4e7318c8562b2bf6e4c33f",
        "idP": "5d4e74742e0e3c2d2ab5428e",
        "nds": 2,
        "createdAt": "2019-08-12T18:15:48.329Z",
        "updatedAt": "2019-08-12T18:15:48.329Z",
        "__v": 0
    }
  ]
}
wait V.find({…})
返回一个mongoose.Document的数组,因此如果要向其元素添加新属性,可以对其使用

例如:

let vs = await V.find({...}).lean();
wait V.find({…})
返回一个mongoose.Document的数组,因此如果要向其元素添加新属性,可以对其使用

例如:

let vs = await V.find({...}).lean();

忽略以下事实:
vs
是对象还是数组?@jmkmay Model.find()返回数组,因此vs是数组。感谢您对代码质量的补充评论。不管您是基于POST请求的主体执行数据库操作(大不否),
vs
是对象还是数组?@jmkame Model.find()返回数组,因此vs是数组。感谢您对代码质量的额外评论。