2015-10-19 51 views
1

我的SQL查詢看起來是這樣的:的MongoDB等效的SQL查詢

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

我想等價蒙戈查詢此:

我試圖

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

但沒有奏效。誰能幫我這個 ?

回答

1

可以使用aggregation framework對於這一點,特別是$project管道內的$ifNull表達式返回任何非空school字段值或字符串「NA」如果school字段爲空或不存在:

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

的$ COND表達也應該工作:

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