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
时,对奖牌
字段重新排序
我不能做的事
字段重新排序
字段重新排序
find
或findOne
字段定义了一个getter方法。在getter函数中,我对数组进行排序并返回排序后的数组
怎么了
在上面的代码片段中,我将奖牌为[1,3,2]
的用户保存到数据库中
当我打印用户奖牌时,它是[1,2,3]
。它被分类了。这是对的
但是当我打印用户
对象时,它是奖牌
是[1,3,2]
,未排序
问题:
如何重新排列奖牌
字段,以便在打印用户
时,其值为{user\u id:666,奖牌:[1,2,3]}
请原谅我的英语不好。欢迎任何有助于改进我的问题描述的帮助 好的问题结构)好的问题结构)