我有一个看起来像这样的架构
var user = new Schema({
preference1: { // preference is a number between 1 - 10
type: Number
},
preference2: { // preference is a number between 1 - 10
type: Number
}
})
如何找到文档并按首选项字段中的函数排序?说 fn
是这样的
fn = Math.abs(preference1 - 3) + preference2 ^ 2
最佳答案
我找到了一个临时解决方案。它有效,但并不是我真正想要的...代码真的很乱,显然您不能随意使用 fn
进行排序..
例如,说 fn = (a+3) * (b+5)
Media.aggregate()
.project({
"type": 1,
"status": 1,
"newField1": { "$add": [ "$type", 3 ] },
"newField2": { "$add": [ 5, "$status" ] },
})
.project({
"newField3": { "$multiply": [ "$newField1", "$newField2" ] },
})
.sort("newField3")
.exec()
关于sorting - Mongoose 按功能排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38387772/