Javascript 从mongoose查找时对数组字段重新排序

Javascript 从mongoose查找时对数组字段重新排序,javascript,mongodb,mongoose,Javascript,Mongodb,Mongoose,考虑以下代码: const mongoose = require('mongoose'); const Schema = mongoose.Schema; mongoose.connect('mongodb://localhost/db'); const User = new Schema({ user_id: { type: Number }, medals: { type: [Number], get: (medals) => {

考虑以下代码:

const mongoose = require('mongoose');
const Schema = mongoose.Schema;
mongoose.connect('mongodb://localhost/db');

const User = new Schema({
    user_id: { type: Number },
    medals: {
        type: [Number],
        get: (medals) => {
            return medals.slice().sort();
        }
    }
});

const UserModel = mongoose.model('User', User);

const record = new UserModel();
record.medals = [1, 3, 2];
record.user_id = 666;

record.save(function(err) {
    UserModel.findOne({ user_id: 666 }, function(err, user) {
        console.log(user.medals)
        // user.medals: [1, 2, 3] 
        console.log(user);
        // user: { user_id: 666, medals: [1, 3, 2] }
    });
});
我用两个字段定义了一个
User
模式:
User\u id
奖牌

我想做什么 当我调用
find
findOne
时,对
奖牌
字段重新排序

我不能做的事
  • 对setter函数中的
    字段重新排序
  • 在保存到数据库之前,对
    字段重新排序
  • 调用
    find
    findOne
  • 我是怎么尝试的 我从
    字段定义了一个getter方法。在getter函数中,我对
    数组进行排序并返回排序后的数组

    怎么了 在上面的代码片段中,我将奖牌为
    [1,3,2]
    的用户保存到数据库中

    当我打印用户奖牌时,它是
    [1,2,3]
    。它被分类了。这是对的

    但是当我打印
    用户
    对象时,它是
    奖牌
    [1,3,2]
    ,未排序

    问题: 如何重新排列
    奖牌
    字段,以便在打印
    用户
    时,其值为
    {user\u id:666,奖牌:[1,2,3]}


    请原谅我的英语不好。欢迎任何有助于改进我的问题描述的帮助

    好的问题结构)好的问题结构)