【问题标题】:Assign key and variable without need to assign in Schema分配键和变量,无需在 Schema 中分配
【发布时间】:2017-06-06 09:59:21
【问题描述】:

我有以下 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 未分配,因为它不在架构中。

但是有没有办法让我分配排名,而无需在架构中定义它?

编辑:又名,为论坛回复对象分配排名,而无需保存在 Db 中。

【问题讨论】:

  • 是否对您希望存储在数据库中的新属性进行排名?
  • 否 @SamipSuwal 我只想将 IT 存储在对象列表中。没有 saging 到 db。只想存储在相同的结果中

标签: javascript mongoose mongoose-schema


【解决方案1】:

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

reply.toObject();

然后你就可以给它添加属性了。

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

这是你要找的吗?

更新:

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

【讨论】:

  • 没有测试,看来这就是我所追求的,
猜你喜欢
  • 1970-01-01
  • 2011-09-25
  • 2021-05-29
  • 2014-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多