我有以下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。
答案 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()也有性能优势。