node.js - Mongoose:创建 'virtual column' 的值

标签 node.js mongodb mongoose nosql

这是一个有点模糊的问题,但是请耐心听我说:)

示例架构:

var scoreSchema = mongoose.Schema ({
    name : String,
    scores : String
});

示例行:姓名:John,分数:“2, 4, 6, 1, 7”

对于每一行,我需要将分数字符串转换为数组并排序。 scores.split(",").sort(); 只有这个结果数组才会被使用,但我仍然需要将原始的长字符串保留在数据库中。

所以我需要创建某种“虚拟”列或引用,以便以后可以轻松访问。有什么办法可以做到这一点吗?

最佳答案

您可以使用 Mongoose 的 virtuals对此的支持:

scoreSchema.virtual('splitScores').get(function() {
    return this.scores.split(",").sort();
});

完成后,任何分数文档实例都将具有 splitScores 属性,它是 scores 的排序数组版本。

关于node.js - Mongoose:创建 'virtual column' 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922879/

相关文章:

java - mongodb java 检查插入是否成功

node.js - 填充后数组顺序错误

javascript - 如何访问 .pre ('validation' ) Hook 中的数据?

javascript - 如何使 Electron 窗口对象可以从异步函数内访问而无需全局?

ruby-on-rails - 如何在 MongoMapper 和 Ruby/Rails 中将日期转换为 UTC?

javascript - 带有 Angular 2 rc.5 的 NodeJs 路由目录

node.js - 使用过滤器查询子文档数组并使用 Mongoose 返回原始文档

node.js - Mongoose - find({},cb) 和 find({}).exec(cb) 之间有什么区别?

zend-framework - 使用 Varnish 和 ESI 增加页面浏览量

javascript - 在 React 中,我如何检测我的组件是从客户端渲染还是从服务器渲染?