- 使用了nodejs + mongoose
- 代码如下
const pkgInfo = await PkgModel.findOne({ _id }).populate({
path: 'cover',
populate: {
path: 'tag'
},
}).populate({
path: 'files',
populate: {
path: 'tag'
},
options: [{
lean: true,
}],
}).lean(true);
pkgInfo.files[0].fileUrl = '{a:1}';
// 断点
res.send({
status: 1,
msg: 'success',
data: pkgInfo,
});
想给files[0]加个fileUrl属性;
断点发现files[0]对象有‘fileUrl’属性,但是send后接收到的pkgInfo就没这属性了;
尝试将已有属性pkgInfo.files[0].key = '11',send后正常收到,但是pkgInfo.files[0].key = {},send后key就不变,key的类型为String;
3.请问如何给pkgInfo.files里的每个对象加上fileUrl属性?
似乎找到了原因
}).populate({
path: 'files',
populate: {
path: 'tag'
},
以上代码想要populate tag,但是files没有tag,model里有定义,但document里没值;
去掉populate tag后发现能正常修改pkgInfo.files了;
但是为什么会这样呢?