分配键和变量而无需在Schema中分配

时间:2017-06-05 21:00:30

标签: javascript mongoose mongoose-schema

我有以下mongodb / mongoose Schema

var forumReplySchema   = new Schema({
    userid : String,
    username: String,
    forumid: {type: String, default: '1'},
    message: {type: String, default: ''},
    time: Number,
});

module.exports = mongoose.model('forum_replies', forumReplySchema);

以下查询:

     forum_replies.findOne({forumid: forumid}).then(function (reply) {
    currentReply.username = user.username;
currentReply.rank = result.rank;

});

目前已分配username因为我在架构中具有用户名属性。 未分配Rank因为它不在架构中。

但有没有办法让我分配排名,而不是在Schema中定义?

编辑:aka,将排名分配给论坛回复对象,而无需保存在Db。

1 个答案:

答案 0 :(得分:1)

您无法向mongoose文档添加属性。如果要这样做,则需要先将其转换为普通对象。有几种方法可以解决它。以下是其中之一。

reply.toObject();

然后你可以添加属性。

//you have currentReply in your code, I just want to show general idea here
reply.rank = result.rank;

这是你在找什么?

更新

感谢接受答案:)。同时查看lean()选项,这将返回纯JS对象,而无需手动进行转换。 lean()也有性能优势。