用mongoose取回的对象是否能增加属性?
发布于 10 年前 作者 iburning 4715 次浏览 最后一次编辑是 8 年前
Comment.findOne({ _id: id }, function (err, comment) {
    comment.test = 'test';
    console.log(err, comment);
});

console的结果中是不会有test字段的 请问用mongoose取回的对象是否能增加属性?

2 回复

看是個什麼對象了 MongoDB的特性是Schemaless的 Mongoose是個ODM 所以如果你的存取使用Mongoose而且是定義了MongooseSchema那樣的話是添加不了的~ 但是你可以定義成Mixin 然後 再到代碼里動態修改這個Minxi類型的 然後還要通知Mongoose你把什麼改了 <–這種方法不是特別常用,建議樓主還是在設計上把字段都預留好之類的 ===========這裏講個笑話================== 傳說某東的B2C網站的數據庫這樣的 字段A 字段B 字段C 字段D 字段F 每個字段什麼用法文檔里規定,所以隨便用 ============以上只是傳說聽說的一個笑話而已。。。。。===========

非常感谢

测试了几次发现只有在定义Schema时有的字段才可以被修改,而不能事后添加。

我也想在定义的时候是不是先把这些字段定义成默认值为NULL放在那里,如

category_id: {type ObjectId},
category: {type Object, default: null},
title: { type: String },
...

但是好像也很丑,就像很多冗余数据在那里似的,虽然他们是空的…

回到顶部