mongdob实现类似数据库order by (case lczc = 1 when 100 else lczc) 的排序方式
db.doctorinfo.aggregate(
{ "$match" : { "cityId" : 118}},
{ "$project" : {"deptName" : 1 ,"doctorName":1,"doctorSn":1, "doctorUid" : 1,lczc:1,lczcOrder:{$cond:[{$eq:["$lczc",999]},30,{$cond:[{$eq:["$lczc",2]},40,0]}]}}},
{ "$sort" : { "lczcOrder" : -1 ,"doctorSn":-1}},
{ "$limit" : 10}
)
$match : 查询过虑条件
$project : 需要返回同时处理的字段,如果遇到lczc = 1 变成 999 便于排序
$sort : 需要排序的字段,可以根据project处理后的结果
参考:
http://www.cnblogs.com/shanyou/p/3494854.html