以下mysql查询的等效mongodb查询是什么,或者如何编写查询以获取结果
SELECT name,species FROM pet
按字段排序(种类,'狗','猫','蛇','鸟'),名称ASC
答案 0 :(得分:0)
要实现这一点,您需要做的是使用汇总
权重您的回复db.collection.aggregate({
{ "$project": {
"name": 1,
"species", 1
"weight": { "$cond": [
{ "$eq": [ "$species", "dog" ] },
4,
{ "$cond": [
{ "$eq": [ "$species", "cat" ] },
3,
{ "$cond": [
{ "$eq": [ "$species", "snake" ] },
2,
{ "$cond": [
{ "$eq": [ "$species", "bird" ] },
1,
0
]}
]}
]}
]}
},
{ "$sort": { "weight": -1 }}
])
因此,您使用$cond运算符作为ternary运算来评估字段的当前值。如果它与条件匹配,则将值赋值给权重,如果没有移动到下一个,直到它不匹配,则分配0。
按重量降序排序,结果按照您想要的顺序排列。
您可以在代码here中看到如何生成此嵌套结构。