MongoDB等效于SQL查询

时间:2015-10-19 13:44:13

标签: mongodb mongodb-query

我的sql查询如下所示:

CASE WHEN ( DATALENGTH(school) > 0 ) THEN school ELSE 'na' END

我想要相同的mongo查询:

我试过

             school:
               {
                  $cond: [{ $gte : ["school", 0]}, school, 'na']
               }

但它没有用。任何人都可以帮我这个吗?

2 个答案:

答案 0 :(得分:1)

您可以使用aggregation framework,尤其是 $ifNull 管道中的 $project 表达式返回如果school字段为空或不存在,则为非null school字段值或字符串“na”:

db.collection.aggregate([
    {
        "$project": {                
            "school": { "$ifNull": [ "$school", "na" ] }
        }
    }
])

答案 1 :(得分:1)

$ cond表达式也应该有效:

db.catalog.aggregate([{ 
    $project : { 
      school : { $cond : [ {$gt : ["$school", 0]}, "$school", "na" ]  } 
  } }])