猫鼬:创建一个虚拟列'价值观

时间:2014-09-18 21:44:17

标签: node.js mongodb mongoose nosql

这是一个模糊的问题,但请跟我一起承担:)

示例模式:

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

示例行:名称:John,得分:“2,4,6,1,7”

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

所以我需要创建某种“虚拟”列或引用,以后可以轻松访问。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:0)

您可以使用Mongoose的virtuals支持:

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

有了这个,任何得分文档实例都将具有splitScores属性,即scores的排序数组版本。