mongodb按多场操作排序

时间:2018-02-16 17:31:00

标签: mongodb mongodb-query

在mongodb中,我可以使用

对查找输出进行排序
db.orders.find().sort({ amount: -1 })

如果在我的数据库中我有字段数量和价格。 我如何通过db的两个字段的操作进行排序?类似于

db.orders.find().sort( { prices*amount/2: -1 } )

1 个答案:

答案 0 :(得分:0)

您可以尝试使用aggregate$multiply运算符,如下所示:

db.companies.aggregate([
{$project: { _id:0, name:1, prices:1, amount:1, 
             total: {$multiply: [ "$prices", "$amount", 0.5 ]}}},
{ $sort: {total: -1}} 
]);

编辑:如果要添加数字:

db.companies.aggregate([
{$project: { _id:0, name:1, prices:1, amount:1, 
            mult: {$multiply: [ "$prices", "$amount", 0.5 ]} }},
{ $project:  { prices:1, amount:1, total: { $add: [ "$mult", 1 ] } } },
{ $sort: {total: -1}} 
]);